Я работаю над приложением, которое предположительно является игрой определенного типа, и с целью сохранения данных и обеспечения их доступности для нескольких клиентов. Я установил 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, но, как уже было сказано, он не работает из-за [], окружающего строку ответа.
Используемые библиотеки для клиентской логики запроса - ответа взяты из библиотек Джерси.