JSON介绍:
简介:
JSON JavaScript Object JS 对象简谱,是一种轻量级的数据交换格式
对象格式:
一个对象,由一个大括号表示
括号中 描述对象的属性和函数, 通过键值对来描述对象的属性
(可以理解为,大括号中包含的是一个个的键值对)
格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔
键值对的键 应该使用 引号引住(通常java解析时,键不使用引号会报错,而JS能正确解析)
键值对的值,可以是JS中的任意类型的数据
数组格式:
在JSON格式中可以与对象互相嵌套
[元素1,元素2…]
例子:
{
"name":"小张",
"age":18,
"pengyou":["张三","李四","王二","麻子",{
"name":"野马老师",
"info":"像一匹野马一样奔跑在技术钻研的道路上"
}],
"heihei":{
"name":"大长刀",
"length":"40m"
}
}
Java 与JSON
做什么?
将Java 中的对象,快速的转换为 JSON格式的字符串
将JSON格式的字符串,转换为Java 的对象
Gson(Google)
将对象转换为JSON字符串
转换JSON字符串的步骤:
1.引入JAR包
2.在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJson(要转换的对象);
System.out.println(json);//打印转换完毕后的字符串
将JSON字符串转换为对象
1.引入JAR包
2.在需要转换为Java对象的位置,编写如下代码:
对象 = new Gson.fromJson(JSON字符串,对象类型.class);
示例代码如下:
将对象转成Json字符串
package com.company;
import com.google.gson.Gson;
public class Json {
public static void main(String[] args) {
//1.创建Gson对象
Gson g = new Gson();
//2.转换
PersonBean p = new PersonBean("张胜男",23);
String s = g.toJson(p);
System.out.println(s);
}
}
将Json字符串转成对象
package com.company;
import com.google.gson.Gson;
import java.util.HashMap;
public class Jsonto {
public static void main(String[] args) {
//1.创建Gson对象
Gson g = new Gson();
//2.转换 :{"name":"张胜男","age":23}
PersonBean p = g.fromJson("{\"name\":\"张胜男\",\"age\":23}",PersonBean.class);
HashMap hash = g.fromJson("{\"name\":\"张胜男\",\"age\":23}", HashMap.class);//这里将其转换为HashMap对象
System.out.println(p.getName());
System.out.println(hash.get("name"));
}
}
Fastjson
将对象转换为JSON字符串
转换JSON字符串的步骤
1.引入JAR包
2.在需要转换JSON字符串的位置编写如下代码即可
String json = JSON.toJSONString(要转换的对象);
案例:
Book b = BookDao.find();
String json = JSON.toJSONString(b);
System.out.println(json);
将JSON字符串转换为对象
1.引入JAR包
2.在需要转换Java对象的位置,编写如下
类型 对象名 = JSON.parseObject(JSON字符串,类型.class);
List<类型> list = JSON.parseArray(JSON字符串.类型.class);
将对象转换为Json字符串
package com.company;
import com.alibaba.fastjson.JSON;
public class FastJson {
public static void main(String[] args) {
PersonBean p = new PersonBean("小李",20);
//1.转换
String json = JSON.toJSONString(p);
System.out.println(json);
}
}
将Json字符串转换为对象
package com.company;
import com.alibaba.fastjson.JSON;
import com.google.gson.internal.bind.util.ISO8601Utils;
public class toFastJSON {
public static void main(String[] args) {
//1.转换 :{"age":20,"name":"小李"}
PersonBean p = JSON.parseObject("{\"age\":20,\"name\":\"小李\"}",PersonBean.class);
System.out.println(p.toString());
}
}