JSON

什么是json

1、json是一种轻量级的数据传输格式,占用带宽较低,因而传输的效率较高。。。还有另一种数据传输格式,即XML。xml是重量级的数据传输格式,占用带宽比较高,内容复杂,因此传输效率较低。
2、JSON常常使用在互联网项目之中,XML在WebService中使用,而且在银行或者税务局的老项目中还有所使用。
3、json的格式

{
	"roles": [{
			"name": "紫炎易霄",
			"age": "27"
		},
		{
			"name": "萧逸",
			"age": "19"
		},
		{
			"name": "黑袍萧寻",
			"age": "29"
		}
	]
}

一、被{…}包裹的称为json对象
二、“roles”:[…] 键值对
三、[…] json数组,里面可以存放很多json对象

解析json(使用的工具包是阿里的fastJson)

还有其它的json工具包:谷歌的gjson,以及jackson等等。当然我们最常用的是阿里的

	public static void main(String[] args) {
		//定义json字符串
		String str = "{\"roles\": [{\"name\": \"紫炎易霄\",\"age\": \"27\"},{\"name\": \"萧逸\",\"age\": \"19\"},{\"name\": \"黑袍萧寻\",\"age\": \"29\"}]}";
		//创建json对象
		JSONObject jsonObject = new JSONObject();
		//将字符串转换成json对象
		JSONObject json = jsonObject.parseObject(str);
		//获取json对象中的数组
		JSONArray jsonArray = json.getJSONArray("roles");
		System.out.println("JSON数组----"+jsonArray.toJSONString());
		for (int i = 0; i < jsonArray.size(); i++) {
			//获得数组中的json对象
			JSONObject jsonObj = jsonArray.getJSONObject(i);
			String name = jsonObj.getString("name");
			String age = jsonObj.getString("age");
			System.out.println("JSON数组中的JSON对象-----"+name+"----"+age);
		}
	}

运行结果
在这里插入图片描述

组装json

public static void main(String[] args) {
		//创建json对象
		JSONObject jsonObject = new JSONObject();
		//创建json数组
		JSONArray jsonArray = new JSONArray();
		//创建三个json对象
		JSONObject json1 = new JSONObject();
		JSONObject json2 = new JSONObject();
		JSONObject json3 = new JSONObject();
		//封装数据
		json1.put("name", "紫炎易霄");
		json1.put("age", 27);
		jsonArray.add(json1);
		json2.put("name", "萧逸");
		json2.put("age", 19);
		jsonArray.add(json2);
		json3.put("name", "黑袍萧寻");
		json3.put("age", 29);
		jsonArray.add(json3);
		//最后组装
		jsonObject.put("roles", jsonArray);
		System.out.println("组装后的json对象-----"+jsonObject.toJSONString());
	}

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值