我无法将Json String对象标记添加到JsonArray

时间:2015-03-24 06:33:14

标签: android json

嗨,我得到了像这样的服务器的响应

     {"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();
        }

4 个答案:

答案 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,而不是从中获取数据。