java中的JSON對象的使用

申明:沒工做以前都沒聽過JSON,多是本身太菜了。可能在前臺AJAX接觸到JSON,這幾天要求在純java的編程中,返回JSON字符串形式。java

網上有兩種解析JSON對象的jar包:JSON-lib.jar和json.jar,這裏主要介紹JSON-lib.jar。編程

jar包地址以下:json

json-lib-2.4-jdk15.jar所需所有JAR包.rar數組

1、JSON-lib.jar還依賴如下jar包:spa

  1. commons-lang.jar
  2. commons-beanutils.jar
  3. commons-collections.jar
  4. commons-logging.jar 
  5. ezmorph.jar
  6. json-lib-2.2.2-jdk15.jar

2、應用code

  JSON也是以key-value形式存在的。key是字符串,value能夠是基本類型、JSONArray、JSONObject.對象

  JSONArray:[],望文生義也知道,他是數組形式,又可要放多個JSONblog

  JSONObject:{}就放一個JSON。字符串

  因爲他們的他們能夠嵌套形式就比較多。get

3、輸出JSON實例考慮到對[]、{}進行對比,區別重複的變量,對變量名進行了首字母大寫,顯得不規範了。

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JSONTest {

    public static void main(String[] args) {
        JSONObject container1 = new JSONObject();
        container1.put("ClassName", "高三一班");
        System.out.println(container1.toString());
        
        JSONArray className = new JSONArray();
        className.add("高三一班");
        container1.put("className", className);
        System.out.println(container1.toString());
        
        JSONObject classInfo = new JSONObject();
        classInfo.put("stuCount", 50);
        classInfo.put("leader", "rah");
        container1.put("classInfo", classInfo);
        System.out.println(container1);
        
        JSONObject ClassInfo = new JSONObject();
        JSONArray stuCount = new JSONArray();
        stuCount.add(50);
        JSONArray leader = new JSONArray();
        leader.add("rah");
        ClassInfo.put("stuCount", stuCount);
        ClassInfo.put("leader", leader);
        container1.put("ClassInfo", ClassInfo);
        System.out.println(container1);
        
        JSONArray students = new JSONArray();
        JSONObject studentOne = new JSONObject();
        studentOne.put("name", "張麻子");
        studentOne.put("sex", "男");
        studentOne.put("age", 12);
        studentOne.put("hobby", "java develop");
        
        JSONObject studentTwo = new JSONObject();
        studentTwo.put("name", "王瘸子");
        studentTwo.put("sex", "男");
        studentTwo.put("age", 13);
        studentTwo.put("hobby", "C/C++ develop");
        
        students.add(studentOne);
        students.add(studentTwo);
        container1.put("students", students);
        System.out.println(container1);
        
        JSONArray Students = new JSONArray();
        JSONObject StudnetOne = new JSONObject();
        JSONArray name1 = new JSONArray();
        name1.add("張麻子");
        JSONArray sex1 = new JSONArray();
        sex1.add("男");
        JSONArray age1= new JSONArray();
        age1.add("12");
        JSONArray hobby1 = new JSONArray();
        hobby1.add("java develop");
        StudnetOne.put("name", name1);
        StudnetOne.put("sex", sex1);
        StudnetOne.put("age", age1);
        StudnetOne.put("hobby", hobby1);
        
        JSONObject StudnetTwo = new JSONObject();
        JSONArray name2 = new JSONArray();
        name2.add("王瘸子");
        JSONArray sex2 = new JSONArray();
        sex2.add("男");
        JSONArray age2= new JSONArray();
        age2.add("13");
        JSONArray hobby2 = new JSONArray();
        hobby2.add("C/C++ develop");
        StudnetTwo.put("name", name2);
        StudnetTwo.put("sex", sex2);
        StudnetTwo.put("age", age2);
        StudnetTwo.put("hobby", hobby2);
        
        Students.add(StudnetOne);
        Students.add(StudnetTwo);
        container1.put("Students", Students);
        System.out.println(container1);
        
        JSONArray teachers = new JSONArray();
        teachers.add(0,"王老師");
        teachers.add(1,"李老師 ");
        container1.put("teachers", teachers);
        System.out.println(container1);
        
        JSONArray Teachers = new JSONArray();
        JSONObject teacher1 = new JSONObject();
        teacher1.put("name", "小梅");
        teacher1.put("introduce","他是一個好老師");
        
        JSONObject teacher2 = new JSONObject();
        teacher2.put("name", "小李");
        teacher2.put("introduce","他是一個合格的老師");
        
        Teachers.add(0,teacher1);
        Teachers.add(1,teacher2);
        container1.put("Teachers", Teachers);
        System.out.println(container1);
    }
}

運行結果:

{"ClassName":"高三一班"}
{"ClassName":"高三一班","className":["高三一班"]}
{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"}}
{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]}}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"張麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}]}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"張麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}],"Students":[{"name":["張麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}]}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"張麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}],"Students":[{"name":["張麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}],"teachers":["王老師","李老師 "]}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"張麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}],"Students":[{"name":["張麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}],"teachers":["王老師","李老師 "],"Teachers":[{"name":"小梅","introduce":"他是一個好老師"},{"name":"小李","introduce":"他是一個合格的老師"}]}

4、遍歷JSON實例

以上面的輸出的JSON字符串進行按順序給它遍歷

     String ClassName1 = (String) container1.get("ClassName");
        System.out.println("ClassName data is: " + ClassName1);
        
        JSONArray className1 = container1.getJSONArray("className");
        System.out.println("className data is: " + className1);
        
        JSONObject classInfo1 = container1.getJSONObject("classInfo");
        System.out.println("classInfo data is: " + classInfo1);
        
        JSONObject ClassInfo1 = container1.getJSONObject("ClassInfo");
        System.out.println("ClassInfo data is: " + ClassInfo1);
        
        JSONArray students1 = container1.getJSONArray("students");
        System.out.println("students data is: " + students1);
        
        JSONArray Students1 = container1.getJSONArray("Students");
        System.out.println("Students data is: " + Students1);
        
        JSONArray teachers1 = container1.getJSONArray("teachers");
        for(int i=0; i < teachers1.size(); i++){
            System.out.println("teahcer " + i + " is: "+ teachers1.get(i));
        }
        
        JSONArray Teachers1 = container1.getJSONArray("Teachers");
        for(int i=0; i < Teachers1.size(); i++){
            System.out.println("Teachers " + i + " is: "+ Teachers1.get(i));
        }

遍歷結果:

ClassName data is: 高三一班
className data is: ["高三一班"]
classInfo data is: {"stuCount":50,"leader":"rah"}
ClassInfo data is: {"stuCount":[50],"leader":["rah"]}
students data is: [{"name":"張麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}]
Students data is: [{"name":["張麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}]
teahcer 0 is: 王老師
teahcer 1 is: 李老師 
Teachers 0 is: {"name":"小梅","introduce":"他是一個好老師"}
Teachers 1 is: {"name":"小李","introduce":"他是一個合格的老師"}

上面包括了大部份的JSON的嵌套形式,可能有忽略的也能夠參考上面的內容。

相關文章
相關標籤/搜索