Как преобразовать строку, содержащую несколько объектов JSON, в реальные объекты JSON в Java - PullRequest
3 голосов
/ 21 апреля 2019

Я работаю над приложением, которое предположительно является игрой определенного типа, и с целью сохранения данных и обеспечения их доступности для нескольких клиентов. Я установил REST Backend API, который просто распределяет и обновляет данные игры от и до другие игроки.

Я разработал, как делать 'GET' и другие запросы к API, но в процессе общего запроса 'GET', который - на стороне сервера - возвращает список всех доступных объектов в ресурсе, который я получаю в ответ Струнная поговорка

    [{"id": 0, "ownerid": 0, "position": [0,0], "size": 1}, {"id": 1, "ownerid": 0, "position": [0,0], "size": 1}]

Естественно, мне нужно было бы разобрать их на несколько объектов JSONObject. Однако всякий раз, когда я пытаюсь сделать это, используя логические подходы, компилятор говорит мне, что это неправильно, потому что [] окружает всю сущность ответа.

Это буквенный код ошибки, скопированный с консоли:

    Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
    at org.json.JSONTokener.syntaxError(JSONTokener.java:505)
    at org.json.JSONObject.<init>(JSONObject.java:215)
    at org.json.JSONObject.<init>(JSONObject.java:399)
    at Game.Game.<init>(Game.java:36)
    at Main.main(Main.java:7)

Вот код, который я использую для преобразования:

    Client c = ClientBuilder.newClient();
    WebTarget wt = c.target("http://localhost:3000").path("villages");
    Invocation.Builder invBuild = wt.request(MediaType.APPLICATION_JSON);
    Response res = invBuild.get();

    JSONObject json = new JSONObject(res.readEntity(String.class));
    String[] ids = JSONObject.getNames(json);
    JSONArray arr = json.toJSONArray(new JSONArray(ids));

Текущий код там читается из другого поста StackOverflow, но, как уже было сказано, он не работает из-за [], окружающего строку ответа.

Используемые библиотеки для клиентской логики запроса - ответа взяты из библиотек Джерси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...