简介:
JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
对象格式
java: class Book{ private String name; private String info; get/set... } Book b = new Book(); b.setName(“金苹果”); b.setInfo(“种苹果”); js: var b = new Object(); b.name = "金苹果"; b.info = "种苹果"; XML: <book> <name>金苹果</name> <info>种苹果</info> </book> JSON: { "name":"金苹果", "info":"种苹果" } 一个对象, 由一个大括号表示.括号中描述对象的属性 通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对.) 格式: 1. 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔. 2. 键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解析) 3. 键值对的值,可以是 JS 中任意类型的数数组格式:
在JSON格式中可以与对象互相嵌套 [元素1,元素2...]首先创建一个Book类用于转换,分别有name,id,info三个属性
package com.java; import java.util.Objects; public class Book { String name; String id; String info; public Book() { } @Override public String toString() { return "Book{" + "name='" + name + '\'' + ", id='" + id + '\'' + ", 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(name, book.name) && Objects.equals(id, book.id) && Objects.equals(info, book.info); } @Override public int hashCode() { return Objects.hash(name, id, info); } public Book(String name, String id, String info) { this.name = name; this.id = id; this.info = info; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } }转换JSON字符串的步骤: 1. 引入JAR包 2. 在需要转换JSON字符串的位置编写如下代码即可: String json = new Gson().toJSON(要转换的对象);
案例:
package com.java; import com.google.gson.Gson; import java.util.Objects; public class Demo05 { /** * gson格式转换 将对象转换为Json格式 * @param args */ public static void main(String[] args) { //1. 创建需要转换的对象 Book b = new Book("白夜行","10001","悬疑类小说"); //2. 创建 Gson 对象 Gson gson = new Gson(); //3. 将对象转换为Json String json = gson.toJson(b); System.out.println(json); } } /* {"name":"白夜行","id":"10001","info":"悬疑类小说"} */案例:
package com.java; import com.google.gson.Gson; import java.util.HashMap; public class Demo06 { /** * Gson Json格式转换为对象 * @param args */ public static void main(String[] args) { //1. 创建Gson对象 Gson gson = new Gson(); //2. 创建Json字符串 String json = "{\"name\":\"白夜行\",\"id\":\"10001\",\"info\":\"悬疑类小说\"}"; //3. 将Json转换为对象 Book b = gson.fromJson(json, Book.class); System.out.println(b.getName()); //当不存在对应Book对象时,可以转换为Map对象(键值对方式) HashMap data = gson.fromJson(json, HashMap.class); System.out.println(data.get("info")); } } /* 白夜行 悬疑类小说 */转换JSON字符串的步骤: 1. 引入JAR包 2. 在需要转换JSON字符串的位置编写如下代码即可: String json=JSON.toJSONString(要转换的对象);
案例:
package com.java; import com.alibaba.fastjson.JSON; public class Demo08 { /** * FastJson 对象转换为 Json格式 * @param args */ public static void main(String[] args) { //1. 创建需要转换的对象 Book b = new Book("白夜行","10001","悬疑类小说"); //2. 创建返回的 Json 字符串 String json = JSON.toJSONString(b); System.out.println(json); } } /* {"id":"10001","info":"悬疑类小说","name":"白夜行"} */案例:
package com.java; import com.alibaba.fastjson.JSON; public class Demo09 { /** * 使用FastJson 将Json格式转换为对象 * @param args */ public static void main(String[] args) { //1. 创建 Json 字符串 String json = "{\"id\":\"10001\",\"info\":\"悬疑类小说\",\"name\":\"白夜行\"}"; //2. 调用 Json parseObject方法 转换为对象 Book b = JSON.parseObject(json,Book.class); System.out.println(b.getName()); } } /* 白夜行 */