我从以下@Override方法
收到String响应@Override
publc void onSuccess(String response) {
....
}
我面临的冲突是我不知道如何将这种反应分解为关键值配对。这是回复的一个例子。
{“action”:{“generic_message”:“test generic message”},“domains”:{“key_example_one”:“https:/google.com”,“api_root_url”:“https://test.com /new/0.2/json “},” 网页“:空}}
我试图将字符串转换为JSONObject,然后将JSONObjects添加到JSONArray。
JSONObject mJObj;
try {
mJObj = new JSONObject(response);
JSONArray mJArry = mJObj.getJSONArray("action");
for (int i = 0; i < mJArry.length(); i++) {
JSONObject newObj = mJArry.getJSONObject(i);
String test2 = newObj.getString("generic_example_for_all_platforms");
}
} catch (JSONException e) {
e.printStackTrace();
}
编辑:我收到JSON异常,即JSONArray无法转换为JSONObject,用于以下行。
JSONArray mJArry = mJObj.getJSONArray("action");
先谢谢
答案 0 :(得分:3)
您确实想了解有关JSON here的更多信息。
首先要知道的是{}等于Json对象而[]等于Json数组。
try {
JSONObject mJObj = new JSONObject(response);
JSONObject actionJsonObject = mJObj.getJSONObject("action");
String generic_message = actionJsonObject.getString("generic_message");
JSONObject domainsJsonObject = mJObj.getJSONObject("domains");
String key_example_one = domainsJsonObject.getString("key_example_one");
String api_root_url = domainsJsonObject.getString("api_root_url");
String page = mJObj.getString("page");
} catch (JSONException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
结帐Gson。
JsonObject jsonObject = new JsonParser().parse(jsonString).getAsJsonObject();
编辑:
只是看到你无法转移到其他Json处理器。属性“action”包含JSONObject而不是JSONArray。怎么样JSONObject jsonObject = mJObj.getJSONObject("action")
。