Json学习笔记
JSON概念
JSON全名称是JavaScript Object Notation,即JavaScript对象表示法。
Java的对象表示:
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
JavaScript的对象表示:
var p = {“name”:“张三”,“age”:23,“gender”:“男”};
JSON介绍:
json现在多用于存储和交换文本信息的语法
进行数据的传输
JSON 比 XML 更小、更快,更易解析。
JSON语法
JSON语法基本规则
1、数据在键/值对中:JSON数据由键值对构成。
键可以用引号(单双引号都行)引起来,也可以不使用引号引起来。
值的取值类型有:数字(整数或浮点数)、字符串(用双引号引起来)、布尔值(true或false)、数组(在方括号中)、对象(在花括号中)、null。
# 值是数字类型
{age: 10, score: 78.5}
# 值是字符串类型
{name: "张三", sex: "m"}
# 值是布尔值类型
{flag: true}
# 值是数组类型
{names: ["zhangsan", "lisi", "wangwu"]}
{students: [{name: "zhangsan"}, {name: "lisi"}]}
# 值是对象类型
{student: {name: "zhangsan", age: 18, flag: true}}
# 值是null类型
{value: null}
2、数据由逗号分隔:多个键值对用逗号进行分隔
{key1: value1, key2: value2, key3: value3, ...}
3、花括号保存对象:使用{}定义json格式的对象,又可以嵌套其他数据类型的值。
{student: {name: "zhangsan", hobbies: ["play", "read", "listen"]}}
4、方括号保存数组:[1,2,3,4,5],又可以嵌套其他数据类型的值。
[{name1:"zhangsan"},{name2:"lisi"}]
[1,2,3,4,5,6]
读取JSON数据
FastJson 版本为1.2.70
FastJson 测试:
新建一个图书类
public class Book {
private String id;
private String name;
private String 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(String id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
测试1
public class Demo {
public static void main(String[] args) {
Book book = new Book("100","金苹果","种植苹果的书籍");
String json = JSON.toJSONString(book);
System.out.println(json);
}
}
测试2
public class Demo {
public static void main(String[] args) {
String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"李伟杰
\",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);
}
}
测试3
public class Demo {
public static void main(String[] args) {
String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"李伟杰
\",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
Book book = JSON.parseObject(json, Book.class);
System.out.println(book)
}
}