JSON数据的解析

这篇博客介绍了JSON的基本概念、数据格式,并详细讲解了如何在Java中使用Gson和FastJson进行JSON数据的解析。JSON作为一种轻量级的数据交换格式,广泛应用于数据传输,而FastJson因其高效率被推荐使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前我们使用最多的就是用JSON方式进行数据的传输,JSON语法简单易用,可以为我们提供更快的数据解析和数据执行。

一、什么是JSON?

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

二、JSON的格式

下面有一段JSON数据:

{
	"booklist":[
		{
			"name":"小王子",
			"info":"讲述了小王子在周游各星球的所见所闻""price":55,
			"authorName":"安托万"
		}
		{
			"name":"Gone with the Wind",
			"info":"女主人公由稚嫩走向成熟的转变过程""price":80,
			"authorName":"玛格丽特"
		}
		{
			"name":"深入理解Java虚拟机",
			"info":"JVM",
			"price":110,
			"authorName":"周志明"
		}
	]
}

其实所谓的JSON数据就是一段字符串,它是以键值对的形式呈现,键与值的内容通过 :分割,然后以[]、{}这样的符号进行区分就分别构成了一个数组或者一个对象,其中:

  • {} 中的内容表示的是一个对象
  • [] 中的内容表示的是一个数组
  • 使用" "双引号表示一个属性或者值
  • : 冒号的两边分别表示属性名以及属性的值,值可以是基本数据类型,也可以是引用数据类型
  • [] 和 {} 可以嵌套使用
  • 属性之间用 , 隔开

既然已经知道了JSON的数据格式,下面就来讲讲怎么解析。目前Java常用的解析方式有Google的Gson以及阿里巴巴的FastJson.

三、使用Gson解析JSON

创建一个BookBean类

public class BookBean {
    private String name;
    private String info;
    private int price;
    private String authorName;

    @Override
    public String toString() {
        return "BookBean{" +
                "name='" + name + '\'' +
                ", info='" + info + '\'' +
                ", price=" + price +
                ", authorName='" + authorName + '\'' +
                '}';
    }

  • 将对象转成JSON数据 : toJson(Object o) ,该方法给返回一个Json字符串
public class MyJSONtoJsonString {
    public static void main(String[] args) {
        //Gson--toJson : 对象 转 JSON
        // 初始化一个BookBean对象
        BookBean book = new BookBean("小王子","讲述了小王子在周游各星球的所见所闻",55,"安托万");
        // 创建一个Gson对象
        Gson gson = new Gson();
        // 调用方法
        String jsonString = gson.toJson(book);
        System.out.println(jsonString);
    }
}
  • 将JSON转成对象 : fromJson(String json,Class classOfT) ,该方法返回一个T类型的对象
		Gson--fromJson : Json 转 对象
		//创建一个Gson对象
		Gson gson = new Gson();
        // 调用方法
        BookBean book = gson.fromJson("{\"name\":\"小王子\",\"info\":\"讲述了小王子在周游各星球的所见所闻\",\"price\":55,\"authorName\":\"安托万\"}", BookBean.class);
        System.out.println(book);

四、使用FastJson解析JSON

  • 对象转JSON:使用JSON对象调用其静态方法 toJSONString(Object o) ,该方法返回Json字符串
		//FastJson--JSON.toJSONString : 对象 转 JSON
        BookBean book = new BookBean("小王子","讲述了小王子在周游各星球的所见所闻",55,"安托万");
        String s = JSON.toJSONString(book);
        System.out.println(s);
  • JSON转对象:使用JSON对象调用其静态方法 parseObject(String text,Class clazz) .
		//FastJson--parseObject :JSON 转 对象
        BookBean book = JSON.parseArray("{\"name\":\"小王子\",\"info\":\"讲述了小王子在周游各星球的所见所闻\",\"price\":55,\"authorName\":\"安托万\"}", BookBean.class);
        System.out.println(book);

五、总结

JSON作为数据是目前网络中主流的数据传输格式之一,应用十分广泛,说是使用率达到99%一点也不勉强,相对于XML格式的数据传输会更节省流量,传输效率更高。在这两种解析方式中FastJson是效率最高的,推荐使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值