2016-08-10 2 views
0

Это не дублирующий вопрос Пожалуйста, не помещайте его как дубликат. Может ли этот Json разобраться с библиотекой GSON?Невозможно разобрать разную строку формата json через GSON

{"keyobject": {"keyarray": ["key1", "key2", "key3"]}, 
"valueobject": [{"valuearray": ["arr1_val1", "arr1_val2","arr1_val3"]}, 
{"valuearray": ["arr2_val1", "arr2_val2","arr2_val3"]}]} 
+0

Вы пытались разобрать его с помощью GSON? – saby

+0

Я использовал http://www.jsonschema2pojo.org/ веб-сайт для создания класса POJO для вышеупомянутой строки json, но я не могу правильно сопоставить его со своим классом bean. Я получаю два списка - один для ключевого массива и другой для массива значений. Я не знаю, как сопоставить каждый ключ со значением, и я не хочу сопоставлять его с помощью индекса ключа, поскольку индекс может измениться. –

+0

Почему индекс меняется? – saby

ответ

1

Как насчет этого?

class Outer { 
    KeyObject keyobject; 
    List<ValueObject> valueobject; 
} 

class KeyObject { 
    List<String> keyarray; 
} 

class ValueObject { 
    List<String> valuearray; 
} 
Outer outer = gson.fromJson(json, Outer.class); 
+0

как справиться с этими двумя случаями с этим классом - сначала я хочу только разобрать некоторые из ключей в этой строке json, а во-вторых, если есть большое количество ключей, и если я беру первый аргумент, я не думаю, что поисковый ключ, поскольку индекс worth ..... –

+0

Вы можете определить несколько классов с различным набором полей. Любые дополнительные поля будут игнорироваться во время десериализации. Или вы можете просто использовать JsonParser.parse() и извлечь все это в дерево JsonObject, а затем работать с ним как DOM. – inder

Смежные вопросы