提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Json(JavaScript对象表示法)是一种用于数据交换的轻量级格式。它基于JavaScript语言的子集(在JavaScript中构建对象的方式)。 json常用的有两种:一种是谷歌的 Gson ,另一种是阿里的FastJson 。
{“id”:“100”,“name”:“金苹果”,“info”:“种苹果的过程”}
一个对象, 由一个大括号表示. 括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对.) 格式: 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔. 键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解 析.) 键值对的值, 可以是JS中的任意类型的数据
代码如下(示例):
{"id":"100","name":"金苹果","info":"种苹果的过程"}在JSON格式中可以与对象互相嵌套 [元素1,元素2…] 代码如下(示例):
{"id":"100","name":"金苹果","info":"种苹果的过程" ,"page":"[锄禾日当午, 汗滴禾下土, 谁知盘中餐, 粒粒皆辛苦]"}}做什么? 将Java中的对象 快速的转换为 JSON格式的字符串. 将JSON格式的字符串, 转换为Java的对象.
将对象转换JSON字符串的步骤:
引入JAR包在需要转换JSON字符串的位置编写如下代码即可: import java.util.Objects; public class book { private String id; private String name; private String info; @Override public String toString() { return "book{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", info='" + info + '\'' + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; book book = (book) o; return Objects.equals(id, book.id) && Objects.equals(name, book.name) && Objects.equals(info, book.info); } @Override public int hashCode() { return Objects.hash(id, name, info); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public book() { } public book(String id, String name, String info) { this.id = id; this.name = name; this.info = info; } } //1.创建json对象 Gson g = new Gson(); //2.将对象转换为json字符串 book b = new book("100","金苹果","种苹果的过程"); String o= g.toJson(b); System.out.println(o);将JSON字符串转换为对象
引入JAR包在需要转换Java对象的位置, 编写如下代码: 对象 = new Gson().fromJson(JSON字符串,对象类型.class); 案例: //1.创建json对象 Gson g = new Gson(); //2.json字符串转换为对象 book b = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种苹果的过程\"}", book.class); System.out.println(b);将数组用json解析
HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种苹果的过程\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"谁知盘中餐\",\"粒粒皆辛苦\"]}", HashMap.class); List page = (List) data.get("page"); System.out.println(data);
将对象转换为JSON字符串 转换JSON字符串的步骤:引入JAR包在需要转换JSON字符串的位置编写如下代码即可: String json=JSON.toJSONString(要转换的对象); 案例: book book = new book("1002","哈哈哈哈","嘿嘿额嘿嘿"); String json = JSON.toJSONString(book); System.out.println(json);
将JSON字符串转换为对象 引入JAR包在需要转换Java对象的位置, 编写如下代码: 类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 或 List<类型> list=JSON.parseArray(JSON字符串,类型.class); 案例: //转换字符串(对象) book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"嘿嘿额嘿嘿\",\"name\":\"哈哈哈哈\"}", book.class); System.out.println(book.getId()); //转数组["一二三","二三四","二三四"] List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"二三四\"]", String.class); System.out.println(strings);JSON对于移动设备来说,尤其对于网络环境较差和流量限制的情况下,相对于XML格式的数据传输会更节省流量,传输效率更高。如果在之后工作中,公司如果没有固定要求使用那一种,最好使用FastJson,可以与公司其他人更方便的交流。