如何解析一个JSON对象在Android中

我有一些问题,从JSON对象拉动值。 这里是我的代码

try { JSONObject json = new JSONObject(result); JSONObject json2 = json.getJSONObject("results"); test = json2.getString("name"); } catch (JSONException e) { e.printStackTrace(); }

test被声明为一个String 。 当代码运行它显示null 。 如果我将鼠标悬停在json2在调试模式下,我可以看到该对象中的所有值和名称。

我也试过

test = json2.length();

这回test = 0 。甚至当我悬停在json2对象,我可以在对象中读出值。

下面是一个JSON字符串,我将使用的一个例子。

{ "caller":"getPoiById", "results": { "indexForPhone":0, "indexForEmail":"NULL", "indexForHomePage":"NULL", "indexForComment":"NULL", "phone":"05137-930 68", "cleanPhone":"0513793068", "internetAccess":"2", "overnightStay":"2", "wasteDisposal":"2", "toilet":"2", "electricity":"2", "cran":"2", "slipway":"2", "camping":"2", "freshWater":"2", "fieldNamesWithValue":["phone"], "fieldNameTranslations": ["Telefon"], "id":"1470", "name":"Marina Rasche Werft GmbH & Co. KG", "latitude":"52.3956107286487", "longitude":"9.56583023071289" } }

--------------解决方案-------------

最后我解决它通过使用JSONObject.get而非JSONObject.getString然后抹上test一个String

private void saveData(String result) {
try {
JSONObject json= (JSONObject) new JSONTokener(result).nextValue();
JSONObject json2 = json.getJSONObject("results");
test = (String) json2.get("name");
} catch (JSONException e) {
e.printStackTrace();
}
}

看看http://developer.android.com/reference/org/json/JSONTokener.html

这可能会解决您的问题。

JSONArray jsonArray = new JSONArray(yourJsonString);

for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj1 = jsonArray.getJSONObject(i);
JSONArray results = patient.getJSONArray("results");
String indexForPhone = patientProfile.getJSONObject(0).getString("indexForPhone"));
}

更改为JSONArray,然后转换为JSONObject的。

分类:机器人 时间:2015-03-14 人气:0
本文关键词: JSON,机器人
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.450 (s). 10 q(s)