У меня есть облачная функция NodeJS, которая принимает набор объектов javascript (записей из базы данных) в виде массива и отправляет их клиенту.
На сервере я делаю это с помощью:return JSON.stringify(result);
Где «результат» - это массив объектов JS.Затем я отправляю данные клиенту.
В моем клиенте Android я получаю строку и мне нужно перебирать каждый объект в исходном массиве и обрабатывать их отдельно.Я не могу!Я всегда получаю сообщения об ошибках типа:
I: [Batch] com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 1 column 3 path $[0].
На моем клиенте Android я пробовал:
WebItemEntry [] items = new Gson().fromJson(jsonString, WebItemEntry[].class);
AND ...
ArrayList<WebItemEntry> items = new Gson().fromJson(jsonString, new TypeToken<ArrayList<WebItemEntry>>(){}.getType());
Кажется, что ничего не работает,Та же ошибка, что и выше.
Исходный вывод, который я получаю из базы данных, - это строка JSON, состоящая из пяти отдельных записей, которые я хотел бы перебрать и проанализировать.Это своего рода беспорядок, но вы можете видеть, что его разделителем является скобка {.Я действительно хочу использовать GSON или подобное в моем клиенте для Android, чтобы проанализировать эти записи по отдельности и преобразовать их в мой пользовательский класс Java: WebItemEntry.
[{\"charityID\":0,\"purchaserZIP\":\"\",\"category\":\"Women\u0027s Accessories\",\"valueCents\":0}, {... same thing for a different entry here...}, {new entry ... }]