JSON介绍

什么是json,javaScript Object Notation是一种javascript轻量级数据交互格式,主要应用于Ajax编程

第一次接触到JSON是在项目中运用EXT中的Ajax和java后台交互的数据格式,当时没怎么在意,因为很简单,用起来顺手,项目也是半路接手就直接拿过来用了,也没怎么注意。现在想想JSON火那也正是这个东西简单上手,而且从他的官方网站也能看的出来他很简单但很实用。http://www.json.org/json-zh.html

JSON只用两种数据格式

1、数组形式

[值1,值2,值3......] JSONArray

2、键值对形式和java中的map很像,当然他们也是可以相互转换的

{key:123,key2:456......} JSONObject

注意的键值对是用“{}”,数组的是“[]”

同时上面两种格式是可以相互嵌套的,比如:

[{name:[123,12,43],sex:[1,0,1]},{name:[123,12,43],sex:[1,0,1]}]等等的格式,在json的官网上有几张图,画出了这几种格式的状况。


下面说说json在java中的用法,在官网上指出了运用json的有和几种方式,比如:org.json,json-lib,JSON Tools,XStream等,我感觉差不多吧,我只用过org.json和json-lib里面主要的方法就是JSONArray和JSONObject。他们中的方法就不细说了,官网上就有API可以去看看就明白了。不过json-lib引入的包要多一点,这个官网上说了要5个包吧

  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6
其实我个人感觉org.json要好用点,他只需要一个包org.json.jar.

下面简单的写了个例子运用一下json

@Test
	public void demo1(){
		// 转换数组 到 json格式字符串
		String[] arr = {"sada","fdssd","dfsd","sadas"};
		JSONArray jsonArray =  JSONArray.fromObject(arr);
		System.out.println(jsonArray.toString());
	}
	
	@Test
	public void demo2(){
		// 转换list到json
		List<Product> products = new ArrayList<Product>();
		Product p1 = new Product();
		p1.setName("三星手机");
		p1.setPrice(3999);
		
		Product p2 = new Product();
		p2.setName("联想笔记本");
		p2.setPrice(5000);
		
		products.add(p1);
		products.add(p2);
		
		JSONArray jsonArray = JSONArray.fromObject(products);
		System.out.println(jsonArray);
	}
	
	@Test
	public void demo3(){
		// 转换对象 到 json
		Product p1 = new Product();
		p1.setName("三星手机");
		p1.setPrice(3999);
		
		JSONObject jsonObject = JSONObject.fromObject(p1);
		System.out.println(jsonObject);
	}
	
	@Test
	public void demo4(){
		// 通过JSONConfig对象 配置对象哪些属性不参与转换 
		Product p1 = new Product();
		p1.setName("三星手机");
		p1.setPrice(3999);
		// 不想手机 价格存在 于 结果json中
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(new String[]{"price"});
		
		JSONObject jsonObject = JSONObject.fromObject(p1, jsonConfig);
		System.out.println(jsonObject);
	}
	
	@Test
	public void demo5(){
		//转换map到json
		Map<String, String> map = new HashMap<String, String>();
		map.put("name1", "wangwy");
		map.put("name2", "shiqq");
		map.put("name3", "liuj");
		JSONObject json = JSONObject.fromObject(map);
		System.out.println(json);
	}

当然项目中我们用的比这个要复杂的多,有时候需要我们手动去拼写json串,只要牢记json的两种书写格式就可以了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值