JSON解析

1.Json格式

1.1什么是JSON?

JSON就是JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.

1.2JSON的格式

咱们首先来看下Java的对象格式,通常都先要声明属性,然后通过new完对象后再用set方法赋值或者是使用构造方法赋值。

java
class Book{
private String name;
private String info;
get/set...
}
Book b = new Book();
b.setName("解忧杂货铺");
b.setInfo("超级推荐的一本书");
......

再来看看JSON的格式

{
"name":"解忧杂货铺",
"info":"超级推荐的一本书"
}

由此可以看出:一个对象, 由一个大括号表示。括号中双引号描述对象的属性 ,通过键值对来描述对象属性对应的值
(可以理解为, 大括号中, 包含的是一个个的键值对.)
属性与值之间用冒号连接, 多个键值对之间使用逗号分隔。

当然,JSON中并不只是只有大括号。除此之外,JSON中还能包括数组,数组中还能嵌套对象,下面举一个简单的例子,好让大家明白点。

{
	"Grade":"大一",
	"Major":["数学","电气","教科",{
		"Class":"软件工程",
		"info":"学习Java等编程语言........."
		}]
}

在这个Major数组中嵌套了一个对象,对象属性有Class与info等
所以,对象和数组可以相互嵌套是没问题的,大家记住这一点哈。

2.JSON解析

在Java中,JSON不仅能够快速的转换为 JSON格式的字符串. 也能够将JSON格式的字符串,转换为Java的对象.
用的较多的就是谷歌的Gson与阿里巴巴的FastJson的JSON解析库

下面就来简单的介绍一下这两个开源的JSON解析库(引入Jar包或者是导入Maven依赖我就不多说了嗷)

2.1 Gson

首先我们看一下,Gson的Java对象------>JSON字符串

 需要转换JSON字符串的位置编写如下代码
  String json = new Gson().toJson(student);

/**
 * Gson将对象转换为JSON
 */
public class demo1 {
    public static void main(String[] args) {
        Student student = new Student("张三","20","1001");
        //  需要转换JSON字符串的位置编写如下代码
        String json = new Gson().toJson(student);
        System.out.println(json);

    }
}


class Student{
    private String name;
    private String age;
    private String code;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Student() {
    }

    public Student(String name, String age, String code) {
        this.name = name;
        this.age = age;
        this.code = code;
    }
}

输出效果
在这里插入图片描述

然后,我们来看看Gson怎么将JSON数据格式转换为Java的对象。
在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);

public class demo1 {
    public static void main(String[] args) {
       // Student student = new Student("张三","20","1001");
        //  需要转换JSON字符串的位置编写如下代码
//        String json = new Gson().toJson(student);
//        System.out.println(json);

        String json="{\"name\":\"李四\",\"age\":\"21\",\"code\":\"1002\"}";
        Student student = new Gson().fromJson(json,Student.class);
        System.out.println(student.toString());
    }
}

输出效果如下
在这里插入图片描述

2.2 FastJson

将Java对象转换为JSON字符串

就使用toJSONString();方法
格式:String json = JSON.toJSONString(需要转换的对象);

将JSON字符串转换为Java对象

parseObject();方法 :将JSON字符串转换为对象。
parseArray(); 方法 :将JSON字符串转换为存储对象的List集合。

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

两种效果我放在一起演示

/**
 * FastJson将对象转换为JSON
 */
public class demo2 {
    public static void main(String[] args) {
        Student student = new Student("张三","20","1001");
          //对象转Json
        String json = JSON.toJSONString(student);
        System.out.println(json);

        System.out.println("============================");
        System.out.println("FastJson json转对象");

        String json2="{\"name\":\"李四\",\"age\":\"21\",\"code\":\"1002\"}";
        Student student2 = JSON.parseObject(json2,Student.class);
        System.out.println(student2.toString());

        System.out.println("============================");
        System.out.println("Json数组转List");
        List<String> lists = JSON.parseArray("[\"张三\",\"李四\",\"王五\"]",String.class);
        for (String s: lists) {
            System.out.println(s);
        }
    }
}

输出
在这里插入图片描述

JSON解析大概就是这些吧,多多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值