简介
JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
格式:
格式1:对象格式
一个对象, 由一个大括号表示.
括号中 描述对象的属性 . 通过键值对来描述对象的属性
(可以理解为, 大括号中, 包含的是一个个的键值对.)
比如:
{
"topic":"一剪梅"
"author":"李清照"
"content":"巴拉巴拉巴拉巴拉"
}
//个人理解,大括号就像是树根,内容就像是枝枝杈杈,至于怎么长,自己爱怎么长怎么长,只要不坏了他的规矩
格式:
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解 析.)
键值对的值, 可以是JS中的任意类型的数据
格式2:数组格式
[元素1,元素2...元素n] 在JSON格式中可以与对象互相嵌套
案例:
{
"topic":"一剪梅"
"author":"李清照"
"content":["红藕香残玉簟秋","轻解罗裳","独上兰舟","云中谁寄锦书来",{
"topic":"一剪梅"
"author":"李清照"
}],
"zailaiyishou":{
"topic":"一剪梅"
"author":"李清照"
}
}
JAVA与JSON
作用:
1.将Java中的对象 快速的转换为 JSON格式的字符串.
2.将JSON格式的字符串, 转换为Java的对象.
一:Gson(谷歌的JSON)
1.将对象转换为JSON字符串
1.引入JAR包
2.创建Gson对象
3.转换
例如:
public class Book {
private String name;
private String info;
private String id;
public Book() {
}
//构造方法...↓
public class Dem1 {
public static void main(String[] args) {
//创建Gson对象
Gson g = new Gson();
//转换
Book b = new Book("金苹果","种植金苹果很辛苦","100");
String s =g.toJson(b);
System.out.println(s);
}
}
/**
输出:
{"name":"金苹果","info":"种植金苹果很辛苦","id":"100"}
*/
2.将JSON字符串转换为对象
1.创建Gson对象
2.转换:
2.1
public static void main(String[] args) {
//1.创建Gson对象
Gson g = new Gson();
//2.转换: {"name":"金苹果","info":"种植金苹果很辛苦","id":"100"}
Book b = g.fromJson("{\"name\":\"金苹果\",\"info\":\"种植金苹果很辛苦\",\"id\":\"100\"}", Book.class);
System.out.println(b.getId());
}
}
//输出:100
2.2
public static void main(String[] args) {
//1.创建Gson对象
Gson g = new Gson();
//2.转换: {"name":"金苹果","info":"种植金苹果很辛苦","id":"100","page":["床前明月光","疑是地上霜","举头望明月","低头思故乡"]}
HashMap data = g.fromJson("{\"name\":\"金苹果\",\"info\":\"种植金苹果很辛苦\",\"id\":\"100\",\"page\":[\"床前明月光\",\"疑是地上霜\",\"举头望明月\",\"低头思故乡\"]}", HashMap.class);
System.out.println(data.get("page"));
System.out.println(data.get("page").getClass());
List page = (List) data.get("page");
for (int i = 0;i<data.size();i++){
System.out.println(page.get(i));
}
/**输出:
[床前明月光, 疑是地上霜, 举头望明月, 低头思故乡]
class java.util.ArrayList
床前明月光
疑是地上霜
举头望明月
低头思故乡
*/
二、fastJson(阿里的JSON)
1.将对象转换为JSON字符串
步骤就直接看例子把,1.创对象,2.转
public static void main(String[] args) {
//1.创对象
Book b = new Book("一剪梅","巴拉巴拉巴拉巴拉","1002");
//2.转
String s = JSON.toJSONString(b);
System.out.println(s);//输出:{"id":"1002","info":"巴拉巴拉巴拉巴拉","name":"一剪梅"}
}
2.将JSON字符串转换为对象
/**
* 转对象
* @param args
*/
public static void main(String[] args) {
//1.转换{"name":"金苹果","info":"种植金苹果很辛苦","id":"100"}
Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"月满西楼\",\"name\":\"雁字归时\"}", Book.class);
System.out.println(book.getId());
//输出:1002
3.将JSON字符串转换为数组
public static void main(String[] args) {
//转义 :{"一二三","二三四","三四五"}
List<String> list = JSON.parseArray("[\"一二三四\",\"二二三四\",\"三二三四\"]", String.class);
for (int i = 0;i<list.size();i++){
System.out.println(list.get(i));
}
/**
* 输出:
* 一二三四
* 二二三四
* 三二三四
*/