解析Json数组和对象

时间:2017-01-04 02:02:20

标签: android arrays json

有人可以给我一个很好的链接或帮助解释解析json的工作方式。我有一系列像这样的对象........ [{} {} {}]。我试图获得例如{" name" :" John" ....}我调用.get(name)获取值John.or .getString(name)来获取值John。

我遇到的另一件事是在同一个物体上[{"名称":"约翰"," Eta":" 5&#34 ;} ....]我试图调用getstring(ETA)并且在对象上有一个错误可以&#t; t .tstring(Eta)。这可能与某些json有类似/" Time":"(0004253200)" /

之类的事实有关

3 个答案:

答案 0 :(得分:0)

JSON.stringify() - 将javascript对象转换为JSON字符串。

JSON.parse() - 将JSON字符串转换为javascript对象。

答案 1 :(得分:0)

String json = "{"name" :"John"}";
JsonObject object = new JsonObiect(json);
String name = object.getString("name");
System.out.println(name);

答案 2 :(得分:0)

我将尝试解释如何在android中使用JSON。

假设你有一个像

这样的字符串
{
    "contacts": [
        {
                "id": "c200",
                "name": "Ravi Tamada",
                "email": "ravi@gmail.com",
                "address": "xx-xx-xxxx,x - street, x - country",
                "gender" : "male",
                "phone": {
                    "mobile": "+91 0000000000",
                    "home": "00 000000",
                    "office": "00 000000"
                }
        },
        {
                "id": "c201",
                "name": "Johnny Depp",
                "email": "johnny_depp@gmail.com",
                "address": "xx-xx-xxxx,x - street, x - country",
                "gender" : "male",
                "phone": {
                    "mobile": "+91 0000000000",
                    "home": "00 000000",
                    "office": "00 000000"
                }
        }
  ]
}

现在{}之间的任何内容都是JSON对象。所以整个字符串可以转换为一个JSON对象。

为此:JSONObject obj = new JSONObject(str);

[]之间的任何内容都是JSON数组。在上面的示例中,"contacts"是JSONArray。

获取数组JSONArray contacts = jsonObj.getJSONArray("contacts");

现在,假设您需要获取联系人ID c201的名称值。

JSONObject obj = new JSONObject(str); //Convert whole string to JSONObject.
JSONArray contacts = jsonObj.getJSONArray("contacts"); //Get contacts array.
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
    JSONObject c = contacts.getJSONObject(i); //Get JSONObject at index i
    if(c.getString("id").equals("c201")){
        return c.getString("name");
    }
}

请查看this article了解更多阅读材料。