2013-02-11 5 views
1

Как я могу разобрать этот неправильный (я думаю) JSON используя Gson библиотека.Как разобрать неправильный JSON с использованием библиотеки Gson

{ 
    ...... 
     "phones":{ 
      "155193":"5556739386", 
      "155194":"5555301828" 
     } 
    ...... 
    } 

струны 155193 и 155194 являются случайными значениями от сервера.

Необходимо использовать HashMap или любые идеи?

+1

Как насчет JSON «неверно»? –

+0

для моей ситуации лучше было: «телефоны»: [«5556739386», "5555301828"] – GeX

ответ

1

Ваш ответ, безусловно, является правильным (не забудьте пометить его как принято!), Но у меня есть две ноты, которые я положил в форме ответа.

Во-первых, если вы также можете использовать этот путь:

public class ServerResponse { 
    ... 
    private Object phones; 
    ... 
    } 

вы получите ANYCASE карту, конечно, в этом случае вам нужно слепок. Поэтому ваши решения лучше. Но если сервер посылает вам список телефонов, он будет работать, однако (конечно, вы будете иметь исключение в класс произнесения в коде вместо JSONParsingException

Во-вторых, ваш JSON не недействителен, если вы посмотрите на this, вы увидите, что это правильно разобрано. Что здесь не работает, так это то, что вы не можете следовать методу POJO для синтаксического анализа. Один из способов, как вы, ответили, еще одна возможность написать адаптер, который возвращает вас .. Карта. Так что это не будет большой проблемой, лучше, чтобы Gson справлялся с ситуацией так же, как и вы.

1

В этой ситуации это помогло мне:

public class ServerResponse { 
    ... 
    private HashMap<String, String> phones; 
    ... 
    } 
Смежные вопросы