android

时间:2017-07-01 09:30:20

标签: android json

我很擅长使用JavaApi从android中的服务器检索数据。 以前使用.php文件从数据库中检索数据。

我的问题是 我得到没有数组的json响应如下:

{"data":{"param1":true,"param2":3,"param3":"NULL"},"success":"1"}

我希望从此响应中检索param2值

在.php中我们通常得到Array值,因此使用jsonResponse很容易,但是使用Java API我没有得到任何数组值。

我尝试将响应字符串转换为数组,然后检索参数值,但它没有用。

也搜索了解决方案,但无法找到任何解决方案

怎么做???

2 个答案:

答案 0 :(得分:1)

{"data":{"param1":true,"param2":3,"param3":"NULL"},"success":"1"}

此处数据具有JsonObject值

所以像这样解析JSON

try {
        JSONObject obj=new JSONObject("{\"data\":{\"param1\":true,\"param2\":3,\"param3\":\"NULL\"},\"success\":\"1\"}");

        JSONObject data=obj.getJSONObject("data");

        //getting param2 from data

        int param2=data.getInt("param2");

    } catch (JSONException e) {
        e.printStackTrace();
    }

答案 1 :(得分:1)

尝试这种方式从json响应中获取数据:

String response = responseString;

    JSONObject jsonRes = null;
    try {
        jsonRes = new JSONObject(response);
        String valSuccess = jsonRes.getString("success");
        JSONObject dataObj = jsonRes.getJSONObject("data");

        String parm1Val = dataObj.getString("param1");
        String parm2Val = dataObj.getString("param2");
        String parm3Val = dataObj.getString("param3");
    } catch (JSONException e) {
        e.printStackTrace();
    }