如何解析JSON

@[TOC] 目录

1.什么是JSON?

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

    {
	"name":"士成历险记",
	"directory":["最初的旅人","风与诗的篇章","璃月与人的篇章","永恒的国度",{
		"name":"起点亦是终点",
		"info":"再见了,异乡人",
		}],
	"new":{
        "name":"123",
        "info":"456",
        }
    }

其实JSON数据就是一段字符串,只不过用了许多分隔符将其分隔开来了

  • []代表的是一个数组
  • {}代表的是一个对象
  • “”代表属性值
  • :冒号代表代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。

2.如何解析JSON?

  当前市面上最常用的两种解析方法,一种是Gson,还有一种是FastJson,虽然不多,但平时开发已经够用了。

由于我用的是IEDA解析的,所以再此之前我们需要导包。

1、先创建一个包

在这里插入图片描述

2、取名叫lib

在这里插入图片描述

3、然后把需要的jar包复制过来就可以了

在这里插入图片描述
Gson链接:https://search.maven.org/artifact/com.google.code.gson/gson/2.8.9/jar
FastJson链接:
https://repo1.maven.org/maven2/com/alibaba/fastjson/

4、按如下操作进行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样我们就算是导包完成了,下面就可以进行解析了。

Gson解析

1、将对象转为Json字符串
public static void main(String[] args){
        //1.创建一个book对象,并传入值
        Book b = new Book(1001,"唐诗三百首","有300首诗篇");
        //2.创建Gson对象
        Gson g = new Gson();
        //3.转换
        String s = g.toJson(b);
        System.out.println(s);
    }

打印效果:
在这里插入图片描述

2、将JSON字符串转为对象
public static void main(String[] args){
        //1.首先还是创建一个Gson对象
        Gson g = new Gson();
        //2.转换(输入你要转换的JSON字符串,并输入你要转换成的类)
        Book b = g.fromJson("{\"id\":1001,\"name\":\"唐诗三百首\",\"info\":\"有300首诗篇\"}", Book.class);
        //3.因为我这里转换成了Book类,所以我们来调用看看是否成功了
        System.out.println(b.getId());
    }

打印效果:
在这里插入图片描述
可以看到获取到的id的确是1001。

3、将集合转换为JSON字符串
	public static void main(String[] args){
        //1.创建一个Map集合
        HashMap map = new HashMap();
        map.put("1001","一二三");
        map.put("1002","二三四");
        map.put("1003","三四五");
        //2.创建一个Gson对象
        Gson g = new Gson();
        //3.将map集合转换为JSON字符串
        String s = g.toJson(map);
        System.out.println(s);
   	}

打印效果:
在这里插入图片描述

FastJosn解析

1、将对象转换为JSON字符串
public static void main(String[] args){
        Book b = new Book(1002,"静夜思","床前明月光");
        //1.转换
        String s = JSON.toJSONString(b);
        System.out.println(s);
    }

打印效果:
在这里插入图片描述

2、将JSON字符串转为对象
public static void main(String[] args){
        Book book = JSON.parseObject("{\"id\":1002,\"info\":\"床前明月光\",\"name\":\"静夜思\"}", Book.class);
        System.out.println(book.getId());
    }

打印效果:
在这里插入图片描述

3、将JSON字符串转为数组
public static void main(String[] args){
        List<String> list = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]",String.class);
        System.out.println(list.get(0));
    }

打印效果:
在这里插入图片描述

总结

  以上就介绍了最普遍的两种解析JSON的方法,在开发的时候如果想确保数据的正确,又要确保性能,则可以两个一起用,即使用Gson将bean转换json确保数据的正确,使用FastJson将Json转换Bean。兼顾性能和准确性

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值