JSON

JSON

1,JSON简介

JSON(JavaScript Object Notation)(http://www.json.org/) 是一种轻量级的数据交换格式。采用独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人的阅读跟编写,同时也适用于机器的解析跟生成,有效的提升网络数据。
JSON中支持2种数据格式:对象跟数组2种数据。具体支持的值类型有数字、字符串、boolean、null

  • 对象用花括号表示{}
  • 数组用中括号表示[]
  • 数据表现为键值对用:隔开
  • 同级数据用,号隔开

例如:

// json对象
   { "name":"seven","age":"18"}
// json数组,数组里面的元素是对象
   [
    {“name”:"张三","age":"21"},
    {“name”:"李四","age":"22"} 
   ]

2,fastjson

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
主要特点:

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
  • 零依赖(没有依赖其它任何类库除了JDK)

Fastjson的获取:
下载地址:http://repo1.maven.org/maven2/com/alibaba/fastjson/
maven地址:

<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.59</version>
</dependency>

3,对象转换JSON字符串

// java对象
   Person person = new Person();
   person.setName("seven");
   person.setAge(18);
   //把java对象转成JSON格式输出到控制台
   System.out.println(JSON.toJSONString(person));
//控制台输出{"age":18,"name":"seven"}

3,JSON字符串转成对象

// 创建JSON字符串
   String jsonStr = "{'age':18,'name':'seven'}";
// 通过parseObject方法将json字符串直接转成Person对象。
   Person p = JSON.parseObject(jsonStr, Person.class);

4,集合转换成JSON字符串

// 创建3个java对象
Person person1 = new Person();
person1.setName("seven");
person1.setAge(18);
Person person2 = new Person();
   person2.setName("zhansan");
person2.setAge(22);
Person person3 = new Person();
person3.setName("lisi");
person3.setAge(25);
// 创建集合,将3个Person对象添加到集合中
ArrayList<Person> personList = new ArrayList<Person>();
personList.add(person1);
personList.add(person2);
personList.add(person3);
// 通过toJSONString方法将集合转成JSON字符串
System.out.println(JSON.toJSONString(personList));

5,JSON字符串转成集合

// 创建JSON字符串
   String jsonStr = "[{'age':18,'name':'seven'},{'age':22,'name':'zhansan'},{'age':25,'name':'lisi'}]";
// 通过parseArray方法将json字符串直接转成集合。
   ArrayList<Person> list = (ArrayList<Person>) JSON.parseArray(jsonStr,
   Person.class);

6,MAP转成JSON

// 创建Map对象
   		Map<String, Object> map = new HashMap<String, Object>();
		map.put("name", "zhangsan");
		map.put("age", 19);

// 通过toJSONString方法将map对象转成JSON字符串。
   System.out.println(JSON.toJSONString(map));

7,JSON转成Map

// 创建JSON字符串
   String jsonStr = "{'age':18,'name':'seven'}";
// 通过parseObject方法将json字符串直接转成Map。
   Map<String, Object> map = (Map<String, Object>) JSON.parseObject(jsonStr);

8,其它

在对象跟JSON转换的时候,JSON里面的属性名跟对象里面的属性名需要完全一致才能匹配上,如果2者不一样需要使用注解来标准,这样在转换的时候才能将值匹配。
如JSON字符串:{‘age’:18,‘name’:‘seven’}在转换成Person对象的时候。

// 需要使用此注解来映射json字符串里面的字段名跟此字段名一致。
   @JSONField(name = "name")
   private String myName;
   private int age;
	public String getMyName() {
		return myName;
	}

	public void setMyName(String myName) {
		this.myName = myName;
	}
	
	// 注解也可以加在set/get方法上面
	private String myName;

	private int age;

	@JSONField(name = "name")
	public String getMyName() {
		return myName;
	}

	@JSONField(name = "name")
	public void setMyName(String myName) {
		this.myName = myName;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值