如何打破字符串响应?

时间:2015-02-20 23:38:15

标签: android json rest

我从以下@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");

先谢谢

2 个答案:

答案 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")