从JSON String Android获取键值

时间:2017-01-14 09:08:31

标签: java android

我想在下面的JSON字符串中显示Key值对中的所有数据。

response {
community: “worker”
communitystr: "<null>";
workspace: abs;
email: "<null>";
admin: false;
persona: "<null>";
userinfo: {
   info: {
    contact1: {
        firstname: “jon”;
        lastname: “Doe”
        phone: “9885678905”;

        objectname: contact;
        id: 9;
    };
    event1: {
        eventname: “party”;
        description: "";
        order: 6;
        id: 4;
        objectname: events;
    };
    files: {
        filename: “sample”;
        description: "";
        order: 11;
        id: 11;
        objectname: files;

    };
  };
};

因为我对这个发现困难不熟悉。如何获取数组中的键值或任何其他可访问的格式?谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

首先你的json格式不正确,如果你试图使用JSONObject或者GSON库将抛出不是json类型的异常。

请使用正确的json格式。

{
    [
        {
           username: "somename",
           userId : "1"
        },
        {
           username: "somename2",
           userId: "2"
        }
    ]
}

一般JSONObject包含JSONArray或JSONObject,您可以使用内置JSON的android解析它。

JSONArray jsonArray = new JSONArray(yourJSONArray);
for(int i = 0; i < jsonArray.length(); i++){
   JSONObject json = jsonArray.getJSONObject(i);
   String username = json.getString("username"); //here is how to get username key
}

以下是循环访问JSON对象中每个键和值的方法

JSONArray array = new JSONObject(result);
    Iterator<String> iter = jsonObject.keys();
    while (iter.hasNext()) {
        String key = iter.next();
        String value = jsonObject.getString(key)
        Log.d(TAG,"key = "+key+" value = "+value); // always use tag in log cat for preventing confusion
    }

无论你还需要什么样的JSON格式。