嗨,我得到了像这样的服务器的响应
{"statusCode":200,"data":{"message":"Successfully Signed Up","userId":202}}
这个字符串我在JSONObject
上设置了这个字符串。它没有进入JSONArray
。
如何从这个json字符串中获取标记?
try {
JSONObject jobjet = new JSONObject(result);
Log.d("jobj",""+jobjet);
JSONArray jsonArray = jobjet.optJSONArray("data");
Log.d("JArray", ""+ jsonArray);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Log.d("Object", ""+ jsonObject);
UserId = jsonObject.getString("userid");
Log.d("UserId",UserId);
}
} catch (Exception e) {
e.getStackTrace();
}
答案 0 :(得分:2)
试试这个
JSONObject jobjet = new JSONObject(result);
JSONObject jo3 =(JSONObject) jobjet.get("data");
String msg=jo3.getString("message");
String uId=jo3.getString("userid");
数据为JSONObject
而不是JSONArray
。
答案 1 :(得分:0)
这里“数据”不是JSONArray。数组总是
"data": [{"message":"Successfully Signed Up","userId":202},
{"message":"Successfully Signed Up","userId":202}]
像这样......
数组将始终用"[ ]"
答案 2 :(得分:0)
您的data
项目不是JSONArray
它是JSONObject
。数组的数据必须在这些大括号[]
解析它的正确方法是:
JSONObject jobjet = new JSONObject(result);
JSONObject jsonObj = (JSONObject) jobjet.optJSONObject("data");
String msg = jsonObj.getString("message");
String userId = jsonObj.getString("userid");
这是一个有用的link,您可以使用它来粘贴您的回复并检查它的外观
答案 3 :(得分:0)
首先,您需要在JSONObject中获取JSONArray。 Jsonarray应该是这样的:
myArray = [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Jane",
"last" : "Doe"
}
];
因此,您可以将对象拉为jsonObject,而不是从中获取数据。