栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSON的两种解析方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSON的两种解析方式

JSON的两种解析方式:Gson和Fastjson,下面来看下这两种解析方法怎样使用,并且他们有哪些区别。

1.Gson:

Gson是谷歌的一款JSON解析工具。

功能①:将对象转化为JSON字符串

         步骤:首先引入JAR包 

                1。在当前项目下新创建“lib”目录 

               2。然后将下载好的Gson包复制到此目录

                 3。将添加进来的包配置好。 

         然后就可以在需要转换JSON字符串的位置编写代码:

String json = new Gson().toJson()

 功能②:将JSON字符串转换为对象

        在添加完JAR包后,我们只需要在要转换的位置编写:

对象 = new Gson().formJson(Json字符串,对象类型.class)

     注意:1.我们用来获得的对象和formJson方法第二个参数的类型是相同的。

                2.在转化的过程中,若是用来获得的对象中包含Json字符串中的属性就可以转出,若是不包含的属性就会丢失。

               3.若是在转换的过程中没有一个类型可以与之相对,我们可以将其转化为一个MAP集合。

                4.若是Json中有一个属性是数组,则转换后是一个ArrayList集合。

 示例1——将对象转化为Json字符串:

Book类:

public class Book {
    private int id;
    private String name;
    private String info;
    public Book() {
    }

    public Book(int id, String name, String info) {
        this.id = id;
        this.name = name;
        this.info = info;
    } 
    public int getId() {
        return id;
    }

    public void setId(int 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;
    }
}
public class Demo1 {
    public static void main(String[] args) {
        Book b1 = new Book(1001,"金苹果","种植苹果很辛苦");
        Gson g = new Gson();
        String text = g.toJson(b1);
        System.out.println(text);
    }
}

                 运行结果: 

示例2——将JSON字符串转换为对象:

public class Demo2 {
    public static void main(String[] args) {
        Gson g = new Gson();
        //转化:{"id":1001,"name":"金苹果","info":"种植苹果很辛苦","page":["锄禾日当午","汗滴禾下土","嘿嘿额嘿嘿额hi"]}
        Book b = g.fromJson("{"id":1001,"name":"金苹果","info":"种植苹果很辛苦"}",Book.class);
        System.out.println(b.getId()+2);
        HashMap data =g.fromJson("{"id":1001,"name":"金苹果","info":"种植苹果很辛苦","page":["锄禾日当午","汗滴禾下土","嘿嘿额嘿嘿额hi"]}", HashMap.class);
        System.out.println(data.get("page").getClass());

    }
}

        运行结果: 

2. Fastjson

        Fastjson是阿里的一款JSON解析工具。

        功能与Gson相同,也分为将对象转为JSON字符串和将JSON字符串两种,我们来说一下两种功能如何实现。

      功能①:将对象转化为JSON字符串

                步骤1.引入Fastjson的JAR包。

                步骤2.在需要转化为JSON字符串的位置编写入下代码:

String json = JSON.toJSONString(要转化的对象)

        功能②:将JSON字符串转化为对象

                  步骤1:引入JAR包。

                  步骤2:在需要转化的位置编写入下代码:

       

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

                注意:第二行在JSON字符串是数组的时候才使用,如果字符串中没有数组则会出现异常 JSONException。

示例:

//个人理解:转换的原理,JSON是字符串型的,在转成json文件就是字符串,
//        提出来时,根据接收对象的类型来判断每个属性是什么类型,然后在将字符串转换成正确的类型
public class demo5 {
    public static void main(String[] args) {
        Book b = new Book(1001,"唐诗三百首","床前明月光,地上鞋一堆。床上大队长,高喊两块一双");
        String s = JSON.toJSONString(b);
        System.out.println(s);

    }
}

     运行结果:

 示例二:

public class Demo6 {
    public static void main(String[] args) {
        //1.转化:"{"id":1001,"info":"床前明月光,地上鞋一堆。床上大队长,高喊两块一双","name":"唐诗三百首"}"
        Book b =JSON.parseObject("{"id":1001,"info":"床前明月光,地上鞋一堆。床上大队长,高喊两块一双","name":"唐诗三百首"}",Book.class);
        System.out.println(b.getId()+3);
        List list = JSON.parseArray("[{"id":1001,"info":"床前明月光,地上鞋一堆。床上大队长,高喊两块一双","name":"唐诗三百首"}]",Book.class);
        System.out.println(list.get(0).toString());
        //2.转化:["一二三","二三四","三四五"]
        List list1 = JSON.parseArray("["一二三","二三四","三四五"]",String.class);
        System.out.println(list1.get(2));

    }
}

 运行结果:

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/825872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号