关于Java的JSON解析

什么是JSON

JS对象简谱。顾名思义(JavaScript Object Notation),是一种轻量级的数据交换格式。

对象格式

         知道JSON是什么之后得知道怎么使用,这里我们不详细解释所有的,讲述一个常用的,在JSON中一个{}就代表一个对象。
         (可以理解为, 大括号中, 包含的是一个个的键值对.)

         格式:
                  键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
                   键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错.JS能正确解 析.)
                   键值对的值, 可以是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":"种苹果" 
}

上面分别举例了java,js,XML,JSON同时描述一段信息时的区别,还是有点不一样的。

JSON的使用

我们在使用JSON解析文件时需要导入jar文件包,接下来我们将介绍两种常用的JSON,Gson和FastJson,一个是属于谷歌,一个属于阿里。

Gson的使用

第一步:

导入gson-2.8.6.jar。笔者这里提供两种下载方式。

  1. 笔者资源库免费下载gson-2.8.6.jar
  2. 在开源网站https://github.com/google/gson下载

在这里插入图片描述

  1. 在IDEA导入该jar包
    在这里插入图片描述
    现在还不行,还需要在点击file打开Project Structure进行项目的一些配置。打开Libraries,添加项目,再添加刚刚导入gson-2.8.6.jar文件包。
    在这里插入图片描述

第二步:

在需要转换JSON字符串的位置编写如下代码即可:

String json = new Gson().toJSON(要转换的对象);

实例1:将java类代码转换为JSON代码
先创建一个book类,分别导入一些常用的方法。

package kkb.class_code.Leve4_核心类库.Demo8XML与JSON.Gson和FastJson解析;

import java.util.Objects;

public class book {
    private String id;
    private String name;
    private String info;

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

    public book() {
    }

    @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;
    }

    @Override
    public String toString() {
        return "book{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", info='" + info + '\'' +
                '}';
    }
}

package kkb.class_code.Leve4_核心类库.Demo8XML与JSON.Gson和FastJson解析;

import com.google.gson.Gson;

public class Gson1 {
    public static void main(String[] args) {
        //1. 创建Gson对象
        Gson g = new Gson();
        //2. 转换
        book b = new book("001","青苹果","种苹果很幸苦");
        String s = g.toJson(b);
        System.out.println(s);
    }
}

结果:

{"id":"001","name":"青苹果","info":"种苹果很幸苦"}

实例2:将JSON代码转换为java类和集合

package kkb.class_code.Leve4_核心类库.Demo8XML与JSON.Gson和FastJson解析;

import com.google.gson.Gson;

import java.awt.print.Book;
import java.util.HashMap;

public class JSON转java类 {
    public static void main(String[] args) {
        //1. 创建Gson对象
        Gson g = new Gson();
        //2. 转换  : {"id":"001","name":"青苹果","info":"种苹果很幸苦"}
        //转为类
        //book b = g.fromJson("{\"id\":\"001\",\"name\":\"青苹果\",\"info\":\"种苹果很幸苦\"}", book.class);
        //System.out.println(b.getName());
        //转为集合
        HashMap data = g.fromJson("{\"id\":\"001\",\"name\":\"青苹果\",\"info\":\"种苹果很幸苦\"}", HashMap.class);
        System.out.println(data.get("name"));


    }
}

结果:

青苹果

FastJson的使用

第一步:

导入fastjson-1.2.70.jar。笔者这里同样提供两种下载方式。

  1. 笔者资源库免费下载fastjson-1.2.70.jar
  2. 在开源网站https://github.com/alibaba/fastjson下载
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第二步:

在需要转换JSON字符串的位置编写如下代码即可:

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

实例1:将java类代码转换为JSON代码

package kkb.class_code.Leve4_核心类库.Demo8XML与JSON.Gson和FastJson解析;

import com.alibaba.fastjson.JSON;

public class FastJson转java类 {
    public static void main(String[] args) {
        book bk =new book("002","打油诗","从前有座庙,庙里有个和尚");
        //1. 转换
        String json = JSON.toJSONString(bk);
        System.out.println(json);
    }

}

实例2:将JSON代码转换为java类

package kkb.class_code.Leve4_核心类库.Demo8XML与JSON.Gson和FastJson解析;

import com.alibaba.fastjson.JSON;
import kkb.class_code.Leve4_核心类库.Demo8XML与JSON.book.Book;

public class java类转FastJson {
    public static void main(String[] args) {
        //1. 转换  {"id":"002","info":"从前有座庙,庙里有个和尚","name":"打油诗"}
        Book bok = JSON.parseObject("{\"id\":\"002\",\"info\":\"从前有座庙,庙里有个和尚\",\"name\":\"打油诗\"}", Book.class);
        System.out.println(bok.getName());
    }

}

结果:

002

以上就是关于JSON使用的简单介绍,关于Gson和FastJson两种的使用,看个人需求。

在这里插入图片描述

                                                             <----关于Java的JSON解析---->

                                                                              XPATH解析xml文件

                                                                         IDEA中如何进行XML解析

                                                                         IDEA如何进行debug调试

                                                     一个非常方便的测试方法——JUnit单元测试(IDEA)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小满@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值