天天看點

Java中的JSON對象的使用

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

  jar包位址如下:

  json-lib-2.4-jdk15.jar所需全部jar包.rar

  一、json-lib.jar還依賴以下jar包:

  commons-lang.jar

  commons-beanutils.jar

  commons-collections.jar

  commons-logging.jar

  ezmorph.jar

  json-lib-2.2.2-jdk15.jar

  二、應用

  json也是以key-value形式存在的。key是字元串,value可以是基本類型、jsonarray、jsonobject.

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

  jsonobject:{}就放一個json。

  由于他們的他們可以嵌套形式就比較多。

  三、輸出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);

jsonobject classinfo = new jsonobject();

classinfo.put("stucount", 50);

classinfo.put("leader", "rah");

container1.put("classinfo", classinfo);

system.out.println(container1);

jsonarray stucount = new jsonarray();

stucount.add(50);

jsonarray leader = new jsonarray();

leader.add("rah");

classinfo.put("stucount", stucount);

classinfo.put("leader", leader);

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);

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);

jsonarray teachers = new jsonarray();

teachers.add(0,"王老師");

teachers.add(1,"李老師 ");

container1.put("teachers", teachers);

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);

}

運作結果:

{"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":"他是一個合格的老師"}]}

  四、周遊json執行個體

  以上面的輸出的json字元串進行按順序給它周遊

  string classname1 = (string) container1.get("classname");

  system.out.println("classname data is: " + classname1);

  jsonarray classname1 = container1.getjsonarray("classname");

  jsonobject classinfo1 = container1.getjsonobject("classinfo");

  system.out.println("classinfo data is: " + classinfo1);

  jsonarray students1 = container1.getjsonarray("students");

  system.out.println("students data is: " + students1);

  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));

  }

  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的嵌套形式,可能有忽略的也可以參考上面的内容。

最新内容請見作者的github頁:http://qaseven.github.io/