javarest返回json响应给 postman - 语法错误: unexpected 'S'

标签 java json rest postman

使用 postman 时,出现以下错误

语法错误:意外的“S”

尽管我的 JSON 字符串看起来不错。我看过类似的主题,通常说给响应对象一个可以正确转换为 JSON 的实体。我已经用 GSON 解析了宠物列表。

代码:

@Path("Pet")
public class PetResource {

    @Context
    private UriInfo context;

    public PetResource() {
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getJson() {
        PetMapper pm = new PetMapper();
        JSONConverter jsonconv = new JSONConverter();
        List<Pet> petList = pm.getPets();
        String json = jsonconv.getJsonFromPets(petList);
        return Response.ok().entity(json).build();
    }

    @PUT
    @Path("/size")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response getPetSize() {
        PetMapper pm = new PetMapper();
        return Response.ok(pm.getPetSize()).build();
    }
}

GSon 转换器

public class JSONConverter {

    static Gson gson = new GsonBuilder().setPrettyPrinting().create();

public String getJsonFromPets(List<Pet> pets) {
    String petsString = "";
    for (Pet pet : pets) {
        petsString += gson.toJson(pet) + " ";
    }
    return petsString;
}
}

以下是我的原始回复

{
  "id": 1,
  "name": "Fiddo",
  "birth": "2015-02-01",
  "species": "Dog",
  "owner_id": 1,
  "events": []
} {
  "id": 2,
  "name": "Hannibal",
  "birth": "2013-05-10",
  "species": "Dog",
  "owner_id": 1,
  "events": []
} {
  "id": 3,
  "name": "Elvis",
  "birth": "2010-08-08",
  "species": "Cat",
  "owner_id": 3,
  "events": []
} {
  "id": 4,
  "name": "Sam",
  "birth": "2012-01-05",
  "species": "Rabbit",
  "death": "2015-07-07",
  "owner_id": 2,
  "events": []
} 

最佳答案

您的输出文本不是有效的 JSON。问题在于列表的序列化方式。

我相信为您的 JSON 库提供整个列表就足够了:

public String getJsonFromPets(List<Pet> pets) {
    return gson.toJson(pets);
}

关于javarest返回json响应给 postman - 语法错误: unexpected 'S' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52458145/

相关文章:

java - 如何访问 RecyclerView 适配器的 ViewHolder 的数据源?

json - 使用JSON API列出谷歌云存储中文件夹内的文件和文件夹

java - JPanel.getWidth() 不准确。为什么?

java - 将项目插入无序数组

javascript - 从 json 文件中获取文本值

javascript - 从 JSON 文件渲染主干集合不完全工作

java - 如何使用数据对象而不是 String[][]

http - 在 REST API 中处理标志和属性的选项有哪些?

javascript - 选项请求成功但仍然出现访问控制允许来源错误

java - 练习循环中断或返回