[英]Parse JsonString to JsonObject in Java
我有以下字符串:
{
"response": true,
"model_original_id": "5acea0b5:1431fde5d6e:-7fff",
"model_new_id": 500568,
"model_new_version": 1,
"reload": true,
"idsModelProperties": [{
"key": "creation_date",
"value": "2013-12-23"
},
{
"key": "state",
"value": 1,
"displayValue": "Analisi"
}],
"idsNodes": [],
"idsConnectors": [],
"idsNodesProperties": []
}
我需要將其解析為JSONObject。 我試圖使用quickjson但它在嘗試解析一個emty字符串時給了我一個例外。 這是我試過的:
JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonData=parser.parseJson(response_output);
異常: 線程“main”中的異常com.json.exceptions.JSONParsingException:@ Key-Hierarchy :: root / idsNodes [0] / @Key ::值是預期的,但是找到空... @ Position :: 256
任何的想法?
我會給你一個替代方案,因為它看起來像quick-json
在解析空的json數組時遇到了麻煩。 看看Gson
。
String json = "{ \"response\": true, \"model_original_id\": \"5acea0b5:1431fde5d6e:-7fff\", \"model_new_id\": 500568, \"model_new_version\": 1, \"reload\": true, \"idsModelProperties\": [{ \"key\": \"creation_date\", \"value\": \"2013-12-23\" }, { \"key\": \"state\", \"value\": 1, \"displayValue\": \"Analisi\" }], \"idsNodes\": [], \"idsConnectors\": [], \"idsNodesProperties\": []}";
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(json);
JsonElement
是一個抽象類。 它的子類型是JsonArray
, JsonNull
, JsonObject
和JsonPrimitive
。 在上面的示例中,實際的實例是JsonObject
因為您的json String
是一個json對象。 它內部包含一個LinkedTreeMap
但您實際上並不需要訪問它。 您可以直接在JsonElement
上訪問不同的json對象。
雖然問題的作者已經接受了答案,但其他人可能正在搜索相同的問題。 我在https://code.google.com/p/quick-json/issues/detail?id=11中使用quick-json解決了我所知道的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.