如何解析java中的JSON以及JSONObect和JSONArray之间的区别是什么?

时间:2013-04-30 04:22:58

标签: java json

{
    "users":[ {
            "user":"hi","password":"hi"
        }, {
            "user":"test","password":"test"
        }
    ]   
}

如何解析这种类型的JSON对象? 请帮忙..

3 个答案:

答案 0 :(得分:1)

您需要使用gsonjsonlibjackson等json库。

JSONObject:它是一个哈希对象,如Map,其中使用键值对

JSONArray:它是像List

这样的对象的集合

答案 1 :(得分:0)

JSONObject的工作方式类似于具有键值对的地图。例如。代码如下所示:

JSONObject obj=new JSONObject();
  obj.put("name","Hello");
  obj.put("nickname","Hi");
  StringWriter out = new StringWriter();
  obj.writeJSONString(out);
  String jsonText = out.toString();
  System.out.print(jsonText);

JSONArray就像一个列表,例如,下面的代码:

JSONArray list = new JSONArray();
  list.add("Hello");
  list.add(new Integer(100));
  System.out.print(list);

答案 2 :(得分:0)

您可以区分JSONArray& JSONObject如下:

JSONArray

JSONArray 是一个有序的值序列。它的外部文本形式是一个用方括号括起来的字符串,用逗号分隔值。

[        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},

    {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},

    {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}

  ]

JSONObject

JSONObject 是名称/值对的无序集合。它的外部形式是一个用大括号包裹的字符串,名称和值之间有冒号,值和名称之间有逗号。

  {"bindings": [

    {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},

    {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},

    {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
 };

您可以解析JSONObject,如下所示:

  JSONObject JsonObject = new JSONObject(json);
  JSONArray JsonArray_ = JsonObject .getJSONArray("users");
  for (int i = 0; i < numberOfItems; i++) {
     JSONObject record= JsonArray_photo.getJSONObject(i);    
     parsedObject.user = record.getString("user"); //its the same for all fields 
     parsedObject.password = record.getString("password");
     map.add(parsedObject);
   }