Json入门

感觉以后的工作中会用到更多的前端知识,而json又是前后端转换的比较流行的语言,所以学习一下,然后再慢慢深入。

1.json格式分为数组和对象,其实在我看来就是存储方式的不同,一个是{“name”:“admin”,“age”:“12”}对象形式的。一个是 [{“name”:“admin”,“age”:“12”},{“name”:“admin”,“age”:“12”}]形式的,根据不同的需求去调用相应的方法。

2.json的jar包有很多,从大到小林林总总,但是基本分为两个可以概括,一个是json-lib下的包,一个是json-org下的包。前者比后者更加具有重量性,随之而来的就多了相应的许多方法,但是后者也有其好处,那就是方便,快捷,灵活,且论功能的话和前者相差并不大。

3.接下里就是代码实例了。因为我个人比较喜欢json-org,所以我就直接用这个进行实例演示了,其实json-libjar包下的用法也就是一个调用方法不一样,大家可以自行百度即可。但是要注意的是,千万要注意jar包别导错了。我这边json-libjar包的地址是http://download.csdn.net/download/t_james/10148219,json-orgjar包的地址是http://download.csdn.net/download/t_james/10148269,后者里面有相应的代码进行借鉴。

4.代码实例

    我这边是先新建一个实体类,到了后面是便于调用。

public class Stu {
     private int age;
     private String name;
     private String sex;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
}
  其次,新建一个测试类,用三种不同的方法进行存储和显示,分别是字符串,map数组,实体bean三种类型。
public static void AddSelect() throws JSONException{
		//传入字符串类型
		String strjson = "{'age':'11','name':'admin'}";
		JSONObject json = new JSONObject(strjson);
		System.out.println("名字和年龄分别是"+json);
		
	    //传入map类型
		Map<String, Object> map = new HashMap<String,Object>();
		map.put("age", 99);
		map.put("name", "JAMES");
		map.put("sex","男");
		JSONObject jsons = new JSONObject(map);
		System.out.println("map传的值是"+jsons);
		
		//传入实体
		Stu stu = new Stu();
		stu.setAge(66);
		stu.setName("kebi");
		stu.setSex("男");
		//JSONObject beanjsons =JSONObject.f(stu);
		//System.out.println("传过来的实体值是"+stu);
	}
	
	
	public static void resolve() throws JSONException{
          JSONObject jsonObject =new JSONObject();
          jsonObject.put("age", "111");
          jsonObject.put("name","syso");
          System.out.println(jsonObject);
	}
	
	
	public static void main(String[] args) throws Exception{
		Test1 t = new Test1();
		//t.AddSelect();
		t.resolve();
		
	}
接下来是相应的数据显示

名字和年龄分别是{"name":"admin","age":"11"}
map传的值是{"name":"JAMES","age":99,"sex":"男"}
{"name":"syso","age":"111"}

接下来就是json-org下面的jsonarray和jsonobject之间的互相转化。至于jsonarray是什么,简单来讲就是json数组,使用中括号,但是要注意的是jsonarray里面的格式也是json键值对的形式。

public static void main(String[] args) throws JSONException {
    	 
    	 
    	 JSONObject jsonObject = new JSONObject("{'name':'tom','age':'11'}");  
         JSONArray jsonArray = new JSONArray("['sex','nnn']");  
           
         //JSONObject内嵌JSONObject  
         JSONObject jsonObject1 = new JSONObject();  
         jsonObject1.put("object1", jsonObject);  
         jsonObject1.put("object2", jsonObject);  
         
         //JSONObject内嵌JSONArray  
         JSONObject jsonObject2 = new JSONObject();  
         jsonObject2.put("JSONArray1", jsonArray);  
         jsonObject2.put("JSONArray2", jsonArray);  
          
         //JSONArray内嵌JSONArray  
         JSONArray jsonArray1 = new JSONArray();  
         jsonArray1.put(jsonArray);  
         jsonArray1.put(jsonArray);  
         
         //JSONArray内嵌JSONObject  
         JSONArray jsonArray2 = new JSONArray();  
         jsonArray2.put(jsonObject);  
         jsonArray2.put(jsonObject); 
           
         System.out.println("JSONObject内嵌JSONObject:" + "\r" + jsonObject1.toString());  
         System.out.println("JSONObject内嵌JSONArray:" + "\r" + jsonObject2.toString());  
         System.out.println("JSONArray内嵌JSONArray:" + "\r" + jsonArray1.toString());  
         System.out.println("JSONArray内嵌JSONObject:" + "\r" + jsonArray2.toString()); 
	}
JSONObject内嵌JSONObject:
{"object2":{"name":"tom","age":"11"},"object1":{"name":"tom","age":"11"}}
JSONObject内嵌JSONArray:
{"JSONArray1":["sex","nnn"],"JSONArray2":["sex","nnn"]}
JSONArray内嵌JSONArray:
[["sex","nnn"],["sex","nnn"]]
JSONArray内嵌JSONObject:
[{"name":"tom","age":"11"},{"name":"tom","age":"11"}]

以上就是相应的转换代码和转换最后的显示结果。

最后就是json字符串的解析了,我觉得这个是比较重要的,但是我现在也只是弄了一个皮毛,大家不要笑我哈。

 //解析字符串  
	public static void main(String[] args) throws JSONException {
		JSONObject jsonObject1 = new JSONObject();  
	    jsonObject1.put("name", "tom");  
	    jsonObject1.put("age", "11");  
	    System.out.println("解析字符串:" + "\r" + jsonObject1.getString("name"));  
	      
	    //解析对象  
	    JSONObject jsonObject = new JSONObject("{'name':'tom','age':'11'}");  
	    JSONObject jsonObject2 = new JSONObject();  
	    jsonObject2.put("jsonObject", jsonObject);  
	      
	    System.out.println("解析对象:");  
	    System.out.println(jsonObject2.getJSONObject("jsonObject").toString()); 
	}
解析字符串:
tom
解析对象:
{"name":"tom","age":"11"}


当然,我这是比较浅显的解析,到了后面学习比较深入的知识在分享出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值