我正在试图弄清楚如何解析来自Android Studio内部的Zoho CRM API的数据。我比较新,但我知道如何解析JSON响应中的数据,如下所示:
{
"Data": [
{ "subdata": "data"
}
]
}
有些类似于我可以在Android Studio中解析没问题,即使有多个子数据点,也不是那么难。但是,在解析看起来像这样的数据时,我完全失去了:
{"response":{"result":{"Contacts":{"row":[{"no":"1","FL":
[{"content":"1822766000000272057","val":"CONTACTID"},
{"content":"Lisa","val":"First Name"}]},{"no":"2","FL":
[{"content":"1822766000000119148","val":"CONTACTID"},
{"content":"Eric","val":"First
Name"}]}]}},"uri":"/crm/private/json/Contacts/searchRecords"}}
有没有人知道如何在Android Studio中解析这样的数据?
更新:我在Json Viewer中有一张JSON的照片:
答案 0 :(得分:1)
一层一层地拿走它。它可以得到一些冗长,所以我喜欢有一个名为JSONUtils的类,并使用这样的便利方法来帮助解析JSON,而不必将所有东西都包装在try-catch块中:
/**
* Retrieves a json object from the passed in json object.
* @param json The json object from which the returned json object will be retrieved.
* @param key The key whose value is the json object to be returned.
* @return A json object.
* */
public static JSONObject jsonObjectFromJSONForKey(JSONObject json, String key) {
try {
return json.getJSONObject(key);
}
catch (JSONException e) {
return null;
}
}
您可以为任何其他数据类型制作此变体,通过这样做,您可以在一个区域中使用try-catch块,并在调用这些方法时检查null。
JSONObject responseJSON = JSONUtils.jsonObjectFromJSONForKey(json, "response");
if (responseJSON != null) {
JSONObject resultJSON = JSONUtils.jsonObjectFromJSONForKey(responseJSON, "result");
// So on and so forth...
}