生成和解析JSON

本文介绍了JSON的基本概念、作用及编写规则,并通过实例展示了如何将Java对象转换为JSON数据,以及如何解析JSON数据回Java对象。文中提到了json-simple、Gson和Jackson等第三方库在生成和解析JSON中的应用。
摘要由CSDN通过智能技术生成

生成和解析JSON

      1.什么是JSON,JSON的作用是什么,如何编写JSON?

      JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式采用完全独立于编程语言的文本格式来存储和表示数据.

      简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言.

      例如:

            一个java对象转换成json对象以后是什么样子?

package com.wangxing.jsondemo1.bean;

public class Person {
	private  int perid;
	private  String  pername;
	private  int  perage;
	private String peraddress;
	public String getPeraddress() {
		return peraddress;
	}
	public void setPeraddress(String peraddress) {
		this.peraddress = peraddress;
	}
	public int getPerid() {
		return perid;
	}
	public void setPerid(int perid) {
		this.perid = perid;
	}
	public String getPername() {
		return pername;
	}
	public void setPername(String pername) {
		this.pername = pername;
	}
	public int getPerage() {
		return perage;
	}
	public void setPerage(int perage) {
		this.perage = perage;
	}
	
}

            //创建一个person类的对象

Person  person1=new Person();
person1.setPerid(1001);
person1.setPername("zhangsan");
person1.setPerage(23);
person1.setPeraddress("西安");

            //将person1这个java对象转换成json对象对应的字符串数据

            {"perid":1001,"pername":"zhangsan","perage":23,"peraddress":"西安"}

            上面是将一个java对象写成json的样子。

            假设现在有一组对象需要写成json的样子,那应该怎么写?

Person  person1=new Person();
person1.setPerid(1001);
person1.setPername("zhangsan");
person1.setPerage(23);
person1.setPeraddress("西安");

Person  person2=new Person();
person2.setPerid(1002);
person2.setPername("lisi");
person2.setPerage(24);
person2.setPeraddress("北京");
		
Person  person3=new Person();
person3.setPerid(1003);
person3.setPername("wangwu");
person3.setPerage(25);
person3.setPeraddress("上海");

            //创建一个保存person对象的集合

List<Person>  personlist=new ArrayList<Person>();

            //将上面创建的3个person对象保存到集合中

personlist.add(person1);

personlist.add(person2);

personlist.add(person3);

            将保存java对象的集合写成json的样子。

[

{"perid":1001,"pername":"zhangsan","perage":23,"peraddress":"西安"},

{"perid":1002,"pername":"lisi","perage":24,"peraddress":"北京"},

{"perid":1003,"pername":"wangwu","perage":25,"peraddress":"上海"}

]

注意:

  1. 用一组“{}”包围键/值对组合,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值,多个键/值对组合中间用“,”分隔,这就表示一个json对象。
  2. 用一组“[]”包围值/json对象这就表示一个json数组。json数组是用来保存java数组数据/集合数据。
  3. json对象中数字值和布尔值是不需要双引号。

     通常情况下我们所遇到的json数据都是json对象中包含json数组,json数组中又包含json对象的复杂形式。

package com.wangxing.test2;
/**
 * 保存地址信息的java类
 * @author Administrator
 *
 */
public class PersonAddress {
	private  String type; //地址类型【家庭/工作】
	private  String info; //地址信息
        public String gettype(){
                return type;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值