Я новичок в использовании библиотеки json-simple в Java, и я прошел через образцы и decoding. Дублирование примеров кодирования было прекрасным, но я не смог заставить декодирование работать со смешанным JSON типа JSON.Декодирование JSON String в Java
Одна из моих проблем заключается в том, что в библиотеке слишком много классов, которые не были должным образом задокументированы и для которых у меня нет источника (чтобы иметь возможность читать и понимать их цель). Следовательно, я изо всех сил пытаюсь понять, как использовать многие из этих классов.
После прочтения этого примера:
String jsonText = "{\"first\": 123, \"second\": [4, 5, 6], \"third\": 789}";
JSONParser parser = new JSONParser();
ContainerFactory containerFactory = new ContainerFactory(){
public List creatArrayContainer() {
return new LinkedList();
}
public Map createObjectContainer() {
return new LinkedHashMap();
}
};
try {
Map json = (Map)parser.parse(jsonText, containerFactory);
Iterator iter = json.entrySet().iterator();
System.out.println("==iterate result==");
while(iter.hasNext()) {
Map.Entry entry = (Map.Entry)iter.next();
System.out.println(entry.getKey() + "=>" + entry.getValue());
}
System.out.println("==toJSONString()==");
System.out.println(JSONValue.toJSONString(json));
} catch(ParseException pe) {
System.out.println(pe);
}
из json-simple official decoding tutorial, я попытался расшифровать этот JSON:
{
"stat":{
"sdr": "MAC address of FLYPORT",
"rcv": "ff:ff:ff:ff:ff:ff",
"time": "0000000000000",
"type": 0,
"subt": 0,
"argv": [
{"type": "6","val": "NetbiosName"},
{"type": "6","val": "MACaddrFlyport"},
{"type": "6","val": "FlyportModel"},
{"type": "1","val": id}
]
}
}
Я пишу следующий код для декодирования:
String jsonString = "{\"stat\":{\"sdr\": \"aa:bb:cc:dd:ee:ff\",\"rcv\": \"aa:bb:cc:dd:ee:ff\",\"time\": \"UTC in millis\",\"type\": 1,\"subt\": 1,\"argv\": [{1,2},{2,3}]}}";
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject newJSON = jsonObject.getJSONObject("stat");
System.out.println(newJSON);
Но он не работает. Infact Мне тоже не удалось получить немодифицированный пример, и оригинальные авторы не объяснили свой код.
Что является самым простым способом декодирования этого JSON, как показано на рисунке?
Можем ли мы видеть ваш код для декодирования стата? –
Вы проверили с примером 5 (Stoppable SAX-подобный обработчик контента) в [JSON официальном учебнике по расшифровке] (https://code.google.com/p/json-simple/wiki/DecodingExamples) Как я вижу, код предназначен для одного словаря (Карта)/Массив. Но вы пытаетесь использовать json с картами на карте (несколько карт). Если я ошибаюсь, верьте мне. – ram2013
@ ram2013: ya .. мне нужно, чтобы декодировать карты на картах ... и я думаю, что это один из них. как будто я получаю значение для «stat», я могу использовать его для дальнейшего декодирования JSON. –