Json解析
JSON: JavaScript Object Notation JS对象简称 , 是一种轻量级的数据交换格式.
JSON就是一串字符串 只不过元素会使用特定的符号标注
{ } 即代表一个对象
[] 即代表一个数组
对象内存储的对象属性,是通过键值对来表示的
Json语法格式
括号中 描述对象的属性 . 通过键值对来描述对象的属性
{
"属性1":"值1",
"属性2":"值2"
......
}
也可以含有数组,还可以含有对象,Json可以对象嵌套对象
{
"属性1":"值1",
"属性2":"值2"
"属性3":["元素1","元素2",{
//新对象
”属性1" :"值1",
"属性2" :"值2"
}]
}
注意
格式:
- 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
- 键值对的键 应使用引号引住
- 键值对的值, 可以是JS中的任意类型的数据
Json解析
Json解析是:
将Java中的对象 快速的转换为 JSON格式的字符串.
将JSON格式的字符串, 转换为Java的对象.
Json解析之Gson
一、将对象转换为JSON字符串
转换JSON字符串的步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
public static void main(String[] args) {
//先创建Gson 对象
Gson g = new Gson();
//2. 转换
Book book = new Book("100","金苹果","种植苹果的小姑凉");
String s = g.toJson(book);
System.out.println(s);
}
二、将JSON字符串转换为对象
转换为对象的步骤:
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
public static void main(String[] args) {
//先创建Gson 对象
Gson g = new Gson();
//2. 转换 {"id":"100","name":"金苹果","info":"种植苹果的小姑凉"}
Book b = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果的小姑凉\"}",Book.class);
System.out.println(b.getId());
System.out.println(b.getName());
System.out.println(b.getInfo());
}
三、数组转换为对象
public static void main(String[] args) {
//创建 Gson对象
Gson g = new Gson();
//转换
HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果的小姑凉\",\"page\":[\"金屋\",\"银屋\",\"茅草屋\"]}",HashMap.class);
List page = (List) data.get("page");
System.out.println(page.get(2));
}
Json解析之FastJson
一、将对象转换为JSON字符串
转换JSON字符串的步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
public static void main(String[] args) {
Book book = new Book("1002","唐诗三百首","床前明月光,床后一水缸,缸里豆腐渣,砸死司马光");
//转换
String json = JSON.toJSONString(book);
System.out.println(json);
}
二、将JSON字符串转换为对象
Json转换对象的步骤:
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
public static void main(String[] args) {
//转换 }
//转对象
Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"床前明月光,床后一水缸,缸里豆腐渣,砸死司马光\",\"name\":\"唐诗三百首\"}\n",Book.class);
System.out.println(book.getId());
}
三、数组转对象
Json 转换数组为对象的步骤:
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
public static void main(String[] args) {
//转换数组 ["一二撒","四五六","七八九"]
List<String> strings = JSON.parseArray("[\"一二撒\",\"四五六\",\"七八九\"]",String.class);
System.out.println(strings.get(1));
}