Не удается разобрать массив объектов JSON - PullRequest
0 голосов
/ 10 июня 2019

У меня есть облачная функция 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 ... }]

1 Ответ

0 голосов
/ 10 июня 2019

На сервере игнорируйте stringify и возвращайте обычный объект, эти символы \" появляются, когда объект js преобразуется в строку дважды.поэтому замените return JSON.stringify(result); на return result;.

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