java rest возвращает ответ с json почтальону - синтаксическая ошибка: неожиданное 'S' - PullRequest
0 голосов
/ 22 сентября 2018

При использовании почтальона я получаю следующую ошибку

Синтаксическая ошибка: неожиданное '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 Converter

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": []
} 

1 Ответ

0 голосов
/ 22 сентября 2018

Ваш выводимый текст не является допустимым JSON.Проблема в том, как сериализуется список.

Я полагаю, этого должно быть достаточно, чтобы дать вашей библиотеке JSON весь список:

public String getJsonFromPets(List<Pet> pets) {
    return gson.toJson(pets);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...