初学JSON解析的两种方式(复习用)

本文介绍了如何使用Gson和FastJson两个流行的Java JSON库进行对象与JSON字符串之间的转换。通过示例展示了Animal对象的序列化和反序列化过程,详细解释了每个库的使用方法。FastJson在转换过程中提供了更多的灵活性,如对象转换为集合和集合转换为Json对象。
摘要由CSDN通过智能技术生成

目录

一、Gson

二、FastJson


        JSON是一种轻量级数据交换格式,以Animal对象演示Gson和FastJson的解析方法

Animal对象

 /**
     * Animal实例
     */
    public class Animal {
        private String name;
        private String info;

        public Animal() {
        }

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

        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 "name=" + name + ", info=" + info;
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Animal animal = (Animal) o;
            return Objects.equals(name, animal.name) && Objects.equals(info, animal.info);
        }

        @Override
        public int hashCode() {
            return Objects.hash(name, info);
        }
    }

一、Gson

1、下载

        https://github.com/google/gson/

2、导入jar包

3、解析(对象转Json,Json转对象)

        

 public static void main(String[] args) {
        Animal eagle = new Animal("鹰酱", "强大的食肉动物之一。");
        Animal rabbit = new Animal("兔子", "手撕杂毛鸟。");

//Gson
        Gson gson = new Gson();//new一个Gson对象
        String gJson = gson.toJson(eagle);//将鹰酱对象转为Json字符串
        System.out.println(gJson);

        Animal eagle2 = gson.fromJson(gJson, Animal.class);//将gJson代表的Json字符串转为Animal对象
        System.out.println(eagle2);
}

此处gJson键(名字)值(冒号后面的)对里,若值是数组,则转换成集合后默认为ArrayList

结果: 

{"name":"鹰酱","info":"强大的食肉动物之一。"}
name=鹰酱, info=强大的食肉动物之一。

二、FastJson

1.下载

        https://github.com/alibaba/fastjson

2.导入jar包

3.解析(对象/数组转Json,Json转对象/集合)

        

public static void main(String[] args) {
        Animal eagle = new Animal("鹰酱", "强大的食肉动物之一。");
        Animal rabbit = new Animal("兔子", "手撕杂毛鸟。");

//FastJson
//对象
        String fastJson = JSON.toJSONString(rabbit);//将兔子对象转为Json字符串
        System.out.println(fastJson);

        Animal rabbit2 = JSON.parseObject(fastJson,Animal.class);//将Json字符串转为Animal对象
        System.out.println(rabbit2);
//集合
        Animal[] animalList = new Animal[2];//创建Animal数组
        animalList[0] = eagle;
        animalList[1] = rabbit;

        String fastJson2 = JSON.toJSONString(animalList);//将数组转换为Json对象
        System.out.println(fastJson2);

        List<Animal> list = JSON.parseArray(fastJson2,Animal.class);//将Json对象转换为list集合
        System.out.println(list);
    }

结果:

{"info":"手撕杂毛鸟。","name":"兔子"}
name=兔子, info=手撕杂毛鸟。
[{"info":"强大的食肉动物之一。","name":"鹰酱"},{"info":"手撕杂毛鸟。","name":"兔子"}]
[name=鹰酱, info=强大的食肉动物之一。, name=兔子, info=手撕杂毛鸟。]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值