什么是JSON?
JSON英文全称是 JavaScript Object Notation (JS对象简谱)。
JSON是一种使用了JS对象的书写语法的格式。[引用1]
它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。[引用2]
JSON格式
1.对象格式
数据内容包含在一对大括号内 { } ,数据的书写格式是:名称/值 对。分别包含在“ " " ”内,中间用“ : ”分开,数据与数据之间用 “ , ” 间隔。
例:
一本书
书名
简介
{
"name":"金苹果",
"info":"种苹果"
}
2.数组格式
数组书写在” [ ] “内。
数组可包含对象,嵌套多层。
{
"name":"李老师",
"age":28,
"pengyou":["张三","李四","王二","麻子",{
"name":"马老师",
"info":"像匹野马一样狂奔在技术钻研的道路上"
}],
"item":{
"name":"大长刀",
"length":"40m"
}
}
Java 与 JSON
Java对象 与 JSON格式字符串 之间的转换方式如下。
Gson
将对象转换为JSON字符串
转换JSON字符串的步骤:
1. 引入JAR包
2. 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
import com.google.gson.Gson;
public class JavaObjectToJSON {
public static void main(String[] args) {
Class_4_8_book b = new Class_4_8_book("10011","金苹果","种植苹果真辛苦");
String s = new Gson().toJson(b);
System.out.println(s);
}
}
将JSON字符串转换为对象
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
import com.google.gson.Gson;
public class JSONToJavaObjectGson {
public static void main(String[] args) {
Gson g = new Gson();
Class_4_8_book b = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\"}", Class_4_8_book.class);
System.out.println(b.getId());
}
}
FastJson
将对象转换为JSON字符串
转换JSON字符串的步骤:
1. 引入JAR包
2. 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
import com.alibaba.fastjson.JSON;
public class JavaObjectToJSONFastjson {
public static void main(String[] args) {
Class_4_8_book book = new Class_4_8_book("1002","唐诗三百首","床前明月光,疑似地上霜。举头望明月,低头思故乡。");
String json = JSON.toJSONString(book);
System.out.println(json);
}
}
将JSON字符串转换为对象
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
List list=JSON.parseArray(JSON字符串,类型.class);
import com.alibaba.fastjson.JSON;
public class JSONToJavaObjectFastjson {
public static void main(String[] args) {
Class_4_8_book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"床前明月光,疑似地上霜。举头望明月,低头思故乡。\",\"name\":\"唐诗三百首\"}", Class_4_8_book.class);
System.out.println(book.getId());
}
}