我有JSON格式的字符串。例如:如何從混合類型json中獲取值?
{
"blockedStatus":true,
"cars":[
"RAW:123",
"TVU:123"
],
"phones":[
"370665566",
"3706324231"
]
}
這是從服務器輸出的。我需要得到獨立的價值觀,但我不知道如何去做。
嘗試這樣:
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder builder = new StringBuilder();
for (String line = null; (line = reader.readLine()) != null;) {
builder.append(line).append("\n");
}
JSONTokener tokener = new JSONTokener(builder.toString());
JSONArray finalResult = new JSONArray(tokener);
Log.e("IO-OUTPUT", builder.toString()); //prints json output
Log.e("finalResult (1)", finalResult.getString(1));
,但我得到的螞蟻異常:
W/System.err(31249): org.json.JSONException: Value {"blockedStatus":true,"cars":["RAW"],"phones":["65431"]} of type org.json.JSONObject cannot be converted to JSONArray
是否有另一種方式來獲得價值?由於計算符號和獲取值從它會太硬
有一些非常好的JSON工作庫,可以讓您的生活變得更輕鬆,特別是當您的域模型發生變化並且需要更新JSON時因此。看看Gson或Jackson。 – Simon
Gson是一個非常棒的工作,可以節省時間。 – slhddn
查看json-io,一個相對較小的庫〜100K,除JDK之外沒有其他依賴項。它受Android開發人員的歡迎。 https://github.com/jdereg/json-io –