Как десериализовать массив PHP с GSON - PullRequest
1 голос
/ 24 февраля 2011

В PHP я сериализую массив с помощью json_encode, который я пытаюсь прочитать на моем Android-устройстве с помощью GSON. Но Android вылетает с фатальным исключением. Я не могу заставить его работать ни с одним из примеров, которые я видел. Я думаю, что это вызвано строкой JSON. Он начинается с индекса массива (19 и 17 в приведенном ниже примере), и я не видел примеров этого типа строки JSON. Все примеры, которые я видел, начинаются с имен свойств, а не с индекса / cpunter.

Вот мой пример JSON:

{ "19": { "ID": "1262", "имя пользователя": "а", "telnr": "0123456789", "создало": "Солнце, 08 августа 2010 10:29:06 +0200" , "электронная почта": "e@mail.com", "код": нулевой}, "17": { "ID": "1259", "имя пользователя": "CDEF", "telnr": "9876543210 " "создал":" Солнце, 08 августа 2010 10:29:06 +0200" , "электронная почта": "mail@domain.com", "код": нулевая},

Среди многих других комбинаций я попробовал следующие два примера:

Type listType = new TypeToken<List<String>>(){}.getType(); 
List<String> personList = new Gson().fromJson(json, listType);

и

Type playerType = new TypeToken<List<Player>>(){}.getType(); 
List<Player> players = new Gson().fromJson(json.toString(), playerType);

я получаю следующую ошибку:

threadid=1: thread exiting with uncaught exception
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{...}:java.lang.NullPointerException

У меня есть класс Player / bean, который может содержать свойства id, имени пользователя, telnr, созданного, электронного адреса и кода. Я надеюсь, что кто-нибудь может дать мне пример кода GSON, который будет работать с этой строкой JSON. Благодаря.

1 Ответ

1 голос
/ 24 февраля 2011

Имена свойств в объекте JSON («19» и «17» выше) должны быть допустимыми идентификаторами Javascript.Они могут содержать только буквы, цифры, знаки подчеркивания и знаки доллара, , но не могут начинаться с цифры. Вы должны назначить разные ключи или вообще удалить ключи, чтобы сформировать массив Javascript.

$values = array_values($arrayWithKeys);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...