Java实现 JSON 的组装和解析

什么是JSON(JavaScript Object Notation)

JSON和xml一样都是数据交换格式。JSON是轻量级的,相比xml占带宽小、效率高

JSON只有两种结构:对象和数组

/*JSON对象,{}修饰,里面为 key1 : value1, key2 : value2形式,key和value可以是数字、字符串、对象和数组*/
json object{ "name" : "ymk" }

/*JSON数组,[]修饰,里面可以为数字、字符串、对象和数组*/
json Array[ json object ]

JSON常用解析框架有:Gson(谷歌)、JackJson(SpringMVC自带)、FastJson(阿里)、LoganSquare...

FastJson组装JSON

引入jar包

  	<!-- 添加json包 -->
  	<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
	<dependency>
	    <groupId>com.alibaba</groupId>
	    <artifactId>fastjson</artifactId>
	    <version>1.2.47</version>
	</dependency>

JSON组装Demo

public static void main(String[] args) {
		// 1. 创建JSON对象
		JSONObject jsonObject = new JSONObject();
		// 2. 创建JSON数组
		JSONArray setisArray = new JSONArray();

		// 3. 内部对象装入JSON数组
		JSONObject bean1 = new JSONObject();
		bean1.put("name", "ymk");
		bean1.put("url", "www.ymk.com");
		setisArray.add(bean1);
		JSONObject bean2 = new JSONObject();
		bean2.put("name", "kmy");
		bean2.put("url", "www.kmy.com");
		setisArray.add(bean2);

		// 4. JSON数组装入JSON对象
		jsonObject.put("setis", setisArray);

		// 5. 转换成JSON字符串
		System.out.println(jsonObject.toJSONString());
	}

组装后JSON的对象

{"setis":[{"name":"ymk","url":"www.ymk.com"},{"name":"kmy","url":"www.kmy.com"}]}

FastJson解析JSON

解析Demo,对字符串要进行转义

	// 转义的JSON代码
	private static String JSONSTR = "{\"setis\": [{\"name\": \"ymk\",\"url\": \"www.ymk.com\"},{\"name\": \"kmy\",\"url\": \"www.kmy.com\"}]}";

	public static void main(String[] args) {
		// 1. 将json字符串转成json对象
		JSONObject jsonObject = new JSONObject();
		// 获取json对象
		JSONObject parseObject = jsonObject.parseObject(JSONSTR);
		// 获取json数组
		JSONArray sitesArrays = parseObject.getJSONArray("setis");
		for (Object object : sitesArrays) {
			JSONObject jsObject = (JSONObject) object;
			String name = jsObject.getString("name");
			String url = jsObject.getString("url");
			System.out.println(name + "----" + url);
		}
	}

解析后内容

ymk----www.ymk.com
kmy----www.kmy.com

参考:蚂蚁课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值