java 生成 解析 json

转载

最近要使用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}]}

实现代码:

Java代码 复制代码  收藏代码
  1. public static void main(String[] args) {   
  2.         //创建Json   
  3.         JSONObject my_json=new JSONObject();   
  4.         my_json.put("class""二年级");   
  5.         my_json.put("total"2);   
  6.        
  7.         JSONArray members=new JSONArray();   
  8.         //第一个同学   
  9.         JSONObject member1=new JSONObject();   
  10.         member1.put("name""李小红");   
  11.         member1.put("age"18);   
  12.         member1.put("score"95);   
  13.         members.put(member1);   
  14.         //第二个同学   
  15.         JSONObject member2=new JSONObject();   
  16.         member2.put("name""王尼玛");   
  17.         member2.put("age"28);   
  18.         member2.put("score"85);   
  19.         members.put(member2);          
  20.         my_json.put("members", members);   
  21.            
  22.         System.out.println(my_json.toString());   
  23.     }  
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数据,把所有属性都解析出来。

Java代码 复制代码  收藏代码
  1. package Myclass;   
  2.   
  3. import org.json.JSONArray;   
  4. import org.json.JSONObject;   
  5.   
  6. public class Test {   
  7.   
  8.     public static void main(String[] args) {   
  9.         //解析Json--传入Json字符串   
  10.         JSONObject my_json=new JSONObject(CreateJson());           
  11.         int total=my_json.getInt("total");   
  12.         System.out.println("总数为:"+total);        
  13.            
  14.         String class_name=my_json.getString("class");   
  15.         System.out.println("班级为:"+class_name);   
  16.            
  17.         JSONArray members=my_json.getJSONArray("members");   
  18.         for(int i=0;i<members.length();i++)   
  19.         {   
  20.             JSONObject member=(JSONObject)members.get(i);   
  21.             System.out.println("姓名:"+member.getString("name")+" 年龄:"+member.getInt("age")   
  22.                     +" 成绩:"+member.getInt("score"));   
  23.         }   
  24.            
  25.     }   
  26.        
  27.     public static String CreateJson()   
  28.     {   
  29.         JSONObject my_json=new JSONObject();   
  30.         my_json.put("class""二年级");   
  31.         my_json.put("total"2);   
  32.        
  33.         JSONArray members=new JSONArray();   
  34.         //第一个同学   
  35.         JSONObject member1=new JSONObject();   
  36.         member1.put("name""李小红");   
  37.         member1.put("age"18);   
  38.         member1.put("score"95);   
  39.         members.put(member1);   
  40.         //第二个同学   
  41.         JSONObject member2=new JSONObject();   
  42.         member2.put("name""王尼玛");   
  43.         member2.put("age"28);   
  44.         member2.put("score"85);   
  45.         members.put(member2);          
  46.         my_json.put("members", members);   
  47.            
  48.         return my_json.toString();   
  49.     }   
  50.   
  51. }  
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上获取

猜你喜欢

转载自zhitangrui2010.iteye.com/blog/2208642