Java的JSON 解析教程

最近学习了关于json解析的东西,目前关于json有很多,最常用的就是谷歌的Gson以及阿里的FastJson,在这里对上面两种方式做一个总结。

一、Gson下载和使用

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。

  1. 引入JAR包,github下载地址
  2. 实现代码
  • 将对象转换为JSON字符串
    在需要转换JSON字符串的位置编写如下代码即可:
    String json=JSON.toJSONString(要转换的对象);

案例
(实体类)

import java.util.Objects;

public class Book {

   private String id;
   private String name;
   private String info;

   @Override
   public String toString() {
       return "Book{" +
               "id='" + id + '\'' +
               ", name='" + name + '\'' +
               ", info='" + info + '\'' +
               '}';
   }

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

   public Book() {
   }

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

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

   public String getId() {
       return id;
   }

   public void setId(String 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;
   }
}

(实现)

import com.google.gson.Gson;


public class JosnDemo1 {
    public static void main(String[] args) {
        Gson gson = new Gson();
        Book book = new Book("100","测试","测试");
        String json = gson.toJson(book);
        System.out.println(json);
    }
}

(结果)

{"id":"100","name":"测试","info":"测试"}
  • 将JSON字符串转换为对象
    在需要转换Java对象的位置, 编写如下代码:
    对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例
(实现一)

import com.google.gson.Gson;


public class JosnDemo1 {
    public static void main(String[] args) {
        Gson gson = new Gson();
        Book book1 = gson.fromJson("{\"id\":\"100\",\"name\":\"测试\",\"info\":\"测试\"}",Book.class);
        System.out.println(book1);
    }
}

(结果)

Book{id='100', name='测试', info='测试'}

(实现二)

import com.google.gson.Gson;

import java.util.HashMap;
import java.util.List;


public class JosnDemo2 {
    public static void main(String[] args) {
        //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换  :  {"id":"100","name":"金苹果","info":"种植苹果真辛苦","page":["锄禾日当午","汗滴禾下土","嘿嘿嘿嘿嘿"]}
        HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"嘿嘿嘿嘿嘿\"]}", HashMap.class);
        List page = (List) data.get("page");
        System.out.println(page.get(1));
    }

}

(结果)

汗滴禾下土

二、FastJson下载和使用

FastJson是由阿里巴巴工程师基于JAVA开发的一款JSON解析器和生成器,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象。FastJson可以处理任意Java对象,包括没有源代码的预先存在的对象。

  1. 引入JAR包,github下载地址
  2. 实现代码
  • 将对象转换为JSON字符串
    在需要转换JSON字符串的位置编写如下代码即可:
    String json=JSON.toJSONString(要转换的对象);

案例
(实现)

import com.alibaba.fastjson.JSON;

import java.util.List;


public class JosnDemo3 {
    public static void main(String[] args) {
        Book book = new Book("1002","测试","测试");
        String json = JSON.toJSONString(book);
        System.out.println(json);
    }

}

(结果)

{"id":"1002","info":"测试","name":"测试"}
  • 将JSON字符串转换为对象
    在需要转换Java对象的位置, 编写如下代码:
    类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

    List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例
(实现)

import com.alibaba.fastjson.JSON;

import java.util.List;


public class JosnDemo3 {
    public static void main(String[] args) {
        Book book1 = JSON.parseObject("{\"id\":\"1002\",\"info\":\"测试\",\"name\":\"测试\"}",Book.class);
        System.out.println(book1);
        List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]", String.class);
        System.out.println(strings.get(1));
    }
}

(结果)

Book{id='1002', name='测试', info='测试'}
二三四
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值