json简介
json的全称是JavaScript Object Notation,是一种数据交换格式,独立于编程语言,可以用来存储数据,优点是非常利于人类阅读和编写,同时也利于机器的解析和生成,同时还可以提升网络传输效率。json的数据格式是以名-值对的方式存储的,可以将其看做是一个字符串,下面就是一个json格式的数据:
{name:"Rong",age:"20”}
在javascript中已经内置了json的解析,在java中有非常多的第三方库可以解析json格式的数据,常用的一般是fastjson,fastjson相关jar包下载地址:http://pan.baidu.com/s/1jIagJII
- JSON.toJSONString 将JavaBean转成json格式的字符串
- JSON.parseObject 将json格式的字符串转换为JavaBean
具体使用方法如下:
city类
package com.rong.bean;
/**
* 城市
*
*/
public class City {
//城市编号
private int id;
//城市名称
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Province类
package com.rong.bean;
import java.util.List;
/**
* 省份
*
*/
public class Province {
//省份名称
private String name;
//省份下的城市名称
private List<City> cities;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<City> getCities() {
return cities;
}
public void setCities(List<City> cities) {
this.cities = cities;
}
}
Test
package com.rong.test;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.rong.bean.City;
import com.rong.bean.Province;
public class JsonTest {
public static void main(String[] args) {
//创建城市对象
City c1 = new City();
c1.setId(1005);
c1.setName("石家庄");
City c2 = new City();
c2.setId(1006);
c2.setName("唐山");
City c3 = new City();
c3.setId(1007);
c3.setName("保定");
List<City> cities = new ArrayList<>();
cities.add(c1);
cities.add(c2);
cities.add(c3);
//将citys转化为json对象
String cy = JSON.toJSONString(cities);
System.out.println(cy);
//将json格式转化为City对象
Object city= JSON.parse(cy);
System.out.println(city);
//创建省份对象
Province hebei = new Province();
hebei.setName("河北");
hebei.setCities(cities);
//将Province对象转换为json格式
String hebeiStr = JSON.toJSONString(hebei);
System.out.println(hebeiStr);
//将json格式的字符串转换为Province对象
Province hebeiNew = JSON.parseObject(hebeiStr, Province.class);
System.out.println(hebeiNew.getName());
}
}