我很擅长使用JavaApi从android中的服务器检索数据。 以前使用.php文件从数据库中检索数据。
我的问题是 我得到没有数组的json响应如下:
{"data":{"param1":true,"param2":3,"param3":"NULL"},"success":"1"}
我希望从此响应中检索param2值
在.php中我们通常得到Array值,因此使用jsonResponse很容易,但是使用Java API我没有得到任何数组值。
我尝试将响应字符串转换为数组,然后检索参数值,但它没有用。
也搜索了解决方案,但无法找到任何解决方案
怎么做???
答案 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();
}