JSON

JSON

一、简介

json:javaScript Object Notation,Java对象简谱。是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。

二、语法规则

(1)数据在名称/值对中;
(2)数据由逗号分隔;
(3)大括号{ }保存对象;
(4)中括号[ ]保存数组,数组中可以包含多个对象。

json数据书写格式:key : value 。
json值可以是数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true或false)、数组(在中括号中)、对象(在大括号中)、null。

三、格式
1.对象格式

(1)一个对象由一个大括号表示,括号中描述对象的属性,通过键值对来描述属性(可以理解为括号中包含的是一个个的键值对)。键与值之间使用冒号连接,多个键值对之间使用逗号分隔。键值对中的键,应该使用引号,因为通常Java解析时,键不使用引号会报错,而js能正确解析。
(2)案例

public class Book {
    //图书名称
    private String name;
    //图书描述
    private String info;

    public Book(){}
    public Book(String name,String info){
        this.name = name;
        this.info = info;
    }

    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;
    }
    
}
//对象
Book book = new Book();
book.setName("平凡的世界");
book.setInfo("平凡人不平凡的一生");
//json
{
"name":"平凡的世界",
"info":"平凡人不平凡的一生"
}
2.数组格式

(1)[元素1,元素2,元素3……]
在json格式中可以与对象互相嵌套
(2)案例

public class Person{
private String name;
private int age;
//朋友
private Friends[] friends;
//宠物
private Pet pet;
}
{
"name":"张三",
"age":20,
"friends":["李四","王五","张大山",{
"name","空大师",
"age":22
}],
"pet":{
"name":"阿黄",
"age":2
}
}
四、Java与json

将Java中的对象快速的转换为JSON格式的字符串;
将JSON格式的字符串转换为Java的对象;

  1. Gson
    (1)将对象转换为JSON字符串
    a. 引入JAR包
    b. 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJson(要转换的对象);

案例:

public static void main(String[] args) {
        Book book = new Book("平方的世界","平凡人不平凡的一生");
        String json = new Gson().toJson(book);
        System.out.println(json);
    }

运行结果:

{"name":"平方的世界","info":"平凡人不平凡的一生"}

(2)将json字符串转换为对象
a. 引入JAR包
b. 在需要转换Java对象的位置,编写如下代码:

对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例:

public static void main(String[] args) {
        String json = "{\"name\":\"平方的世界\",\"info\":\"平凡人不平凡的一生\"}";
        Book book = new Gson().fromJson(json, Book.class);
        System.out.println(book.toString());
    }

运行结果:

Book{name='平方的世界', info='平凡人不平凡的一生'}
  1. FastJson
    (1)将对象转换为JSON字符串
    a. 引入JAR包
    b. 在需要转换JSON字符串的位置编写如下代码即可:
String json = JSON.toJSONString(要转换的对象);

案例:

public static void main(String[] args) {
        Book book = new Book("平凡的世界","平凡人不平凡的一生");
        String json = JSON.toJSONString(book);
        System.out.println(json);
    }

运行结果:

{"info":"平凡人不平凡的一生","name":"平凡的世界"}

(2)将json字符串转换为对象
a. 引入JAR包
b. 在需要转换Java对象的位置,编写如下代码:

类型 对象名=JSON.parseObject(JSON字符串,类型.class);
或
List<类型> list = JSON.parseArray(JSON字符串,类型.class);

案例:

public static void main(String[] args) {
        String json = "{\"info\":\"平凡人不平凡的一生\",\"name\":\"平凡的世界\"}";
        Book book = JSON.parseObject(json,Book.class);
        System.out.println(book);
    }

运行结果:

Book{name='平凡的世界', info='平凡人不平凡的一生'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值