什么是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());
}
运行结果