首页 > 代码库 > Java中构造和解析JSON

Java中构造和解析JSON

什么是 Json

  JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式。 
  易于人阅读和编写。同时也易于机器解析和生成。它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。 
  JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使 JSON 成为理想的数据交换语言。

JSON 的两种结构
 1.“名称/值”对的集合(A collection of name/value pairs)
  不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 (hash table),有键列表(keyed list),或者关联数组 (associative array)。 
  在 Java 语言中,我们可以将它理解成 HashMap。
  对象是一个无序的"‘名称/值‘对"集合。一个对象以"{"(左括号)开始,"}"(右括号)结束。每个“名称”后跟一个":"(冒号);"‘名称/值‘ 对"之间使用","(逗号)分隔。
  示例:var json = {"name":"Jack","age":90,"Marray":true};

  技术分享

 2. 值的有序列表(An ordered list of values)
  在大部分语言中,它被理解为数组(Array 或 List)。
  数组是值(value)的有序集合。一个数组以"["(左中括号)开始,"]"(右中括号)结束。值之间使用","(逗号)分隔。
  示例:var json = ["Jack","Rose","Tom",89,true,false];

   技术分享

 Java中对json的操作的方式:org.json.jar

/**
     * 解析JSON
     */
    public static void ParsingJSon() {
        String json = "{\"resultcode\":\"200\",\"reason\":\"成功的返回\",\"result\":{\"GD\":{\"province\":\"广东\",\"province_code\":\"GD\",\"citys\":[{"
                + "\"city_name\":\"梅州\",\"city_code\":\"GD_MEIZHOU\",\"abbr\":\"粤\"},"
                + "{\"city_name\":\"汕尾\",\"city_code\":\"GD_SHANWEI\",\"abbr\":\"粤\"}]}},\"error_code\":0}";
        try {
            JSONObject jsonobject = new JSONObject(json);
            String resultcode = jsonobject.getString("resultcode");
            JSONObject jsonone = jsonobject.getJSONObject("result");
            JSONObject jsontwo = jsonone.getJSONObject("GD");
            JSONArray jsonarray = jsontwo.getJSONArray("citys");
            for (int i = 0; i < jsonarray.length(); i++) {
                JSONObject ject = jsonarray.getJSONObject(i);
                String s1 = ject.getString("city_name");
                String s2 = ject.getString("city_code");
                String s3 = ject.getString("abbr");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
/**
     * 构造JSON
     */
    public static void ConstructingJSon() {
        JSONObject jsonFirst = new JSONObject();
        JSONObject jsonSecond = new JSONObject();
        JSONObject jsonThird = new JSONObject();
        try {
            JSONArray citys = new JSONArray();
            JSONObject cityone = new JSONObject();
            JSONObject citytwo = new JSONObject();
            cityone.put("city_name", "梅州");
            cityone.put("city_code", "GD_MEIZHOU");
            cityone.put("abbr", "粤");
            citytwo.put("city_name", "汕尾");
            citytwo.put("city_code", "GD_SHANWEI");
            citytwo.put("abbr", "粤");
            citys.put(cityone);
            citys.put(citytwo);
            jsonThird.put("province", "广东");
            jsonThird.put("province_code", "GD");
            jsonThird.put("citys", citys);
            jsonSecond.put("GD", jsonThird);
            jsonFirst.put("resultcode", "200");
            jsonFirst.put("reason", "成功的返回");
            jsonFirst.put("result", jsonSecond);
            jsonFirst.put("error_code", 0);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(jsonFirst.toString());
    }

 

Java中构造和解析JSON