Gson 的简单使用

Json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

解析Json

Java 有很多工具包可以用来解析Json,作者使用google公司的Gson包来解析Json,为什么使用Gson呢?
1,方法少,使用方便。
2,写的代码少。
总之就是简洁。

Gson的方法

gson主要有2个重要方法:

1,toJson()方法,用于将Java对象转换为相应的JSON数据

2,fromJson()方法,用于将JSON数据转换为相应的Java对象


实例

public static void main(String args[]) {
        List<Person> listPerson = getListPerson();
        Person person = getPerson();
        Gson gson = new Gson();
        String json = gson.toJson(person);
        String jsonList = gson.toJson(listPerson);
        System.out.println(json);
        System.out.println("-------------------------");
        System.out.println(jsonList);
        System.out.println("-------------------------");
        Person fromJson = gson.fromJson(json, Person.class);
        System.out.println(fromJson.toString());
        List<Person> fromJsonList = gson.fromJson(jsonList, new TypeToken<List<Person>>() {}.getType());
        System.out.println("-------------------------");
        System.out.println(fromJsonList.toString());
        System.out.println("-------------------------");


    }

    public  static Person getPerson() {
        return new Person(001, "jack", 25);
    }
    public  static List<Person> getListPerson() {
        List<Person> list = new ArrayList<Person>();
        Person person1 = new Person(001, "jack", 25);
        Person person2 = new Person(002, "rose", 24);
        Person person3 = new Person(003, "bob", 26);
        list.add(person1);
        list.add(person2);
        list.add(person3);
        return list;
    }


解析Json 数据时,我们需要将Java对象的类型作为入参输入,

1, 普通对象可以直接.class()获得类型

2, 集合对象可以使用TypeToken获得类型,TypeToken是GSON提供的数据类型转换器,支持多种数据集合类型转换,其反射机制可以实现将解析出来的Java对象映射到对应的数据集合中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值