??????????最近要使用java来操作Json数据,虽然Json用过几次,但一直没有好好总结,趁这次来总结一下java操作Json数据。Java操作Json有很多工具包,地址为http://www.json.org/,可以自己上去挑选。
?
这里我使用第一个org.json,最新源码地址为:https://github.com/douglascrockford/JSON-java,可以自己去下载,我也会在附件上传。下载源码后放进工程即可,包名为org.json
?
1.生成Json数据
我们要生成的Json数据如下:
{"total":2,"class":"二年级","members":[{"age":18,"name":"李小红","score":95},{"age":28,"name":"王尼玛","score":85}]}
?
实现代码:
public static void main(String[] args) { //创建Json JSONObject my_json=new JSONObject(); my_json.put("class", "二年级"); my_json.put("total", 2); JSONArray members=new JSONArray(); //第一个同学 JSONObject member1=new JSONObject(); member1.put("name", "李小红"); member1.put("age", 18); member1.put("score", 95); members.put(member1); //第二个同学 JSONObject member2=new JSONObject(); member2.put("name", "王尼玛"); member2.put("age", 28); member2.put("score", 85); members.put(member2); my_json.put("members", members); System.out.println(my_json.toString()); }
?
2.解析Json数据
??我们就用刚刚生成的Json数据,把所有属性都解析出来。
package Myclass; import org.json.JSONArray; import org.json.JSONObject; public class Test { public static void main(String[] args) { //解析Json--传入Json字符串 JSONObject my_json=new JSONObject(CreateJson()); int total=my_json.getInt("total"); System.out.println("总数为:"+total); String class_name=my_json.getString("class"); System.out.println("班级为:"+class_name); JSONArray members=my_json.getJSONArray("members"); for(int i=0;i<members.length();i++) { JSONObject member=(JSONObject)members.get(i); System.out.println("姓名:"+member.getString("name")+" 年龄:"+member.getInt("age") +" 成绩:"+member.getInt("score")); } } public static String CreateJson() { JSONObject my_json=new JSONObject(); my_json.put("class", "二年级"); my_json.put("total", 2); JSONArray members=new JSONArray(); //第一个同学 JSONObject member1=new JSONObject(); member1.put("name", "李小红"); member1.put("age", 18); member1.put("score", 95); members.put(member1); //第二个同学 JSONObject member2=new JSONObject(); member2.put("name", "王尼玛"); member2.put("age", 28); member2.put("score", 85); members.put(member2); my_json.put("members", members); return my_json.toString(); } }
?
运行结果为:
?
org.json的工具包已经上传在附件,你也可以去上面的网站到github上获取