Json解析
Json简介
Json: JavaScript object Notation js对象简谱,是一种轻量级的数据交换格式。
例子:
{
"name":"张三",
"age":18,
"pengyou":["小杰","李四","王五",{
"name":"james",
"info":"篮球player"
}],
"company":{
"name":"腾讯",
"level":10
}
}
能干嘛:
- 将Java中的对象 快速的转换为 JSON格式的字符串
- 将JSON格式的字符串, 转换为Java的对象
Gson
谷歌公司解析Json的工具
- 将对象转换为Json字符串
步骤:1、 引入jar包
2、在需要转换Json字符串的位置编写如下代码:
String json = new Gson().toJSON(要转换的对象);
DEMO
Person person = new Person("张三", 18);
Gson gson = new Gson();
String json = gson.toJson(person);
System.out.println(json);//{"name":"张三","age":18}
- 将Json字符串转换为对象
步骤:使用Gson对象的fromJson方法
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
DEMO
//{"name":"张三","age":18,"pengyou":["小小","大大","朋朋"]}
String json = "{\"name\":\"张三\",\"age\":18,\"pengyou\":[\"小小\",\"大大\",\"朋朋\"]}";
Gson gson = new Gson();
HashMap hashMap = gson.fromJson(json, HashMap.class);//先转换成hashMap对象
ArrayList<String> pengyou = (ArrayList<String>) hashMap.get("pengyou"); // 这是个List 不是数组
for (String s : pengyou) {
System.out.println(s);
}
结果:
小小
大大
朋朋
FastJson
阿里开发的解析Json工具
- 将对象转换成Json字符串
步骤:1、 导入jar包
2、 使用JSON的toJSONString 静态方法
String json = Json.toJSONString(要转换的对象);
Demo:
Person person = new Person("张三", 18);
String json = JSON.toJSONString(person);
System.out.println(json);//{"age":18,"name":"张三"}
- 将Json字符串转换为对象
方法:
1、 转换为对象
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
2、转换为集合
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
Demo:
Person person = new Person("张三", 18);
System.out.println(person.getAge());// 18
// ["张三","李四","王五"]
String json = "[\"张三\",\"李四\",\"王五\"]";
List<String> list = (ArrayList<String>) JSON.parseArray(json,String.class);
for (String s : list) {
System.out.println(s);
}
结果:
18
张三
李四
王五