Я пытаюсь разобрать следующий JSON массив, который я получаю от моего PHP файла:Android JSON/gson десериализации
actionsArray = [[ "19,431", "19,438"], [[ "8", "107 "], []], [" u1 "," u2 "]]
Мне больше всего интересен доступ к массиву [[" 8 "," 107 "], []]; Однако, я получаю ошибку «com.google.gson.JsonParseException: Ожидать массив, но найденный объект: Имя: нулевые Грамм: нулевые 0 Действия: нулевые
Вот выдержка из моего кода:
класс пользователя содержит : имя Строка; INT [] действия, строковые грамм
JSONArray inputarray;
try {
int[] userActionsArray = new int[0];
inputarray = new JSONArray(br.readLine());
JSONArray gramsArray = (JSONArray)inputarray.get(0);
JSONArray actionsArray = (JSONArray)inputarray.get(1);
JSONArray namesArray = (JSONArray) inputarray.get(2);
User[] values = new User[namesArray.length()];
Gson gson = new Gson();
*User userAction = gson.fromJson(inputarray.toString(), User.class);
//error occurs on the above line*
...
Привет, спасибо за ваш ответ. Это имеет смысл, но я не уверен, что правильный способ - заставить JSONArray следовать указанному вами формату. {MyArray: ["first", "second"]}. Не могли бы вы указать мне в правильном направлении? – user836200
Можете ли вы создать цикл и просто распечатать все строки, чтобы мы могли видеть весь JSON? (Завершите цикл над br.readLine() и распечатайте его). Или вы вручную создаете JSON? –
Мне удалось решить проблему после использования объектов ArrayList. Я отказался от gson и сохранил JSONArrays. Я получил JSONArray из файла php. Спасибо за вашу помощь (+1). – user836200