[转载]JSONObject、 JsonObject、阿里fastJson、谷歌gson区别

文章转载自:https://www.cnblogs.com/bytecodebuffer/p/11572472.html


JSONObject、 JsonObject、阿里fastJson、谷歌gson区别

JSON:JavaScript Object Notation Java对象表示法

Java中并没有内置的 JSON 解析,需要使用第三方类库。常用的类库如下

一、Gson : 古河开发的JSON 库

二、FastJson :阿里巴巴的JSON 库

三、JackSon : 社区十分活跃

JSONObject 是json 对象,一个键对应一个值,例如: {“key”:"value"}

一、com.alibaba.fastjson.JsonObject(参考

1.添加fastJson依赖

 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
</dependency>

2.将 List 对象转换为 Json 格式的String

 List<User> users= findAllUser();

 String str = JSONObject.toJSONString(users);

3.将 Map 对象转换为 JsonObject

 Map<String,Object> map = new HashMap();
        map.put("name","zhangsan");
        map.put("age","15");
JSONObject jsonObject = new JSONObject(map);

4.将Map 转换为 Json 格式的String 字符串

  String jsonStr = JSON.toJSONString(map);

5.将 json 格式的String 字符串转换为 Map 

 String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

 JSONObject  jsonObject = JSONObject.parseObject(jsonStr);

 Map<String,Object> map = jsonObject;

6. 将 json 格式的字符串转换为 JsonObject

String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

JSONObject jsonObject = JSON.parseObject(jsonStr);

7. 将 json字符串转换为 Java对象

 String jsonStr = "{\"name\":\"zhangsan\",\"email\":\"15\"}";
        
 User user = JSON.parseObject(jsonStr,User.class);

8. 将 json 字符串转换为 JSONArray 数组

 String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";
        
        JSONArray array = JSON.parseArray(jsonStr);

        for(int i=0;i<array.size();i++){
            System.out.println(array.get(i));
        }

9. 将Java 对象转换为 json 字符串

 User user = new User(11,"wangwu","wangwu@163.com","上海");
        
 String str = JSON.toJSONString(user);

10. 将json 字符串转换为 Java 实体集合

 String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";

 List<User> list = JSON.parseArray(jsonStr,User.class);

11. 将 java 对象转换为 JsonObject

  User user = new User(11,"wangwu","wangwu@163.com","上海");

  JSONObject jsonObject = (JSONObject) JSON.toJSON(user);

二、org.json.JSONObject

1.添加依赖

 <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180130</version>
 </dependency>

2.Bean 对象转换为 JSONObject

User user = new User(11,"wangwu","wangwu@163.com","上海");

JSONObject jsonObject = new JSONObject(user);

3.Map 集合转换为 JSONObject 对象

  Map<String,Object> map = new HashMap();
        map.put("name","zhangsan");
        map.put("age","15");

  JSONObject jsonObject = new JSONObject(map);

4.JSONObject 转换为 Map<String,Object>对象

    JSONObject jsonObject = new JSONObject();

    jsonObject.toMap();

三、GSON(参考

1.添加依赖

  <dependency>
     <groupId>com.google.code.gson</groupId>
     <artifactId>gson</artifactId>
     <version>2.3.1</version>
  </dependency>

2.Gson 的两个基础方法

toJson();
fromJson();

3.创建方式一:

// 使用new方法
Gson gson = new Gson();

// toJson 将bean对象转换为json字符串
String jsonStr = gson.toJson(user, User.class);

// fromJson 将json字符串转为bean对象
Student user= gson.fromJson(jsonStr, User.class);

// **序列化List**
String jsonStr2 = gson.toJson(list);

// **反序列化成List时需要使用到TypeToken getType()**
List<User> retList = gson.fromJson(jsonStr2,new TypeToken<List<User>>(){}.getType());

创建方式二:

//serializeNulls()是GsonBuilder提供的一种配置,当字段值为空或null时,依然对该字段进行转换
Gson gson = new GsonBuilder().serializeNulls().create(); 

使用GsonBuilder创建Gson实例的步骤:

首先创建GsonBuilder,然后调用GsonBuilder提供的各种配置方法进行配置,最后调用GsonBuilder的create方法,将基于当前的配置创建一个Gson实例。

附录00:

package entity;

/**
 * Created by baizhuang on 2019/9/23 16:29.
 */

public class User {
    private int id;
    private String name;
    private String email;
    private String address;

    public User() {
    }

    public User(int id, String name, String email, String address) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", address='" + address + '\'' +
                '}';
    }

    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 getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

附录01:

package entity;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by baizhuang on 2019/9/23 16:30.
 */

public class Test {

    public static List<User> findAllUser(){
        return  Arrays.asList(
                new User(1,"zhangsan","zhang","北京"),
                new User(2,"lisi","li","上海"));

    }


    public static void listToJsonString(){
        List<User> users= findAllUser();

        System.out.println(users);

        String str = JSONObject.toJSONString(users);

        System.out.println(str);
    }


    public static  void maptoJsonObject(){
        Map<String,Object> map = new HashMap();
        map.put("name","zhangsan");
        map.put("age","15");
        JSONObject jsonObject = new JSONObject(map);
        System.out.printf("Json:"+jsonObject);

        String jsonStr = JSON.toJSONString(map);
        System.out.println(jsonStr);

    }


    public static void stringToMap(){

        String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

        JSONObject  jsonObject = JSONObject.parseObject(jsonStr);

        Map<String,Object> map = jsonObject;

    }


    public static  void jsonToJsonObject(){
        String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

        JSONObject jsonObject = JSON.parseObject(jsonStr);

        System.out.println(jsonObject);
    }

    public static void jsonStrToJsonBean(){
        String jsonStr = "{\"name\":\"zhangsan\",\"email\":\"15\"}";

        User user = JSON.parseObject(jsonStr,User.class);

        System.out.println(user);
    }

    public static void jsonStrToJsonArray(){
        String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";

        JSONArray array = JSON.parseArray(jsonStr);

        for(int i=0;i<array.size();i++){
            System.out.println(array.get(i));
        }
    }

    public static void javaBeanToJsonStr(){
        User user = new User(11,"wangwu","wangwu@163.com","上海");

        String str = JSON.toJSONString(user);
        System.out.println(str);
    }

    public static void jsonStrToBeanList(){
        String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";
        List<User> list = JSON.parseArray(jsonStr,User.class);
        for(User user : list){
            System.out.println(user);
        }
    }

    public static void beanToJsonObject(){
        User user = new User(11,"wangwu","wangwu@163.com","上海");

        JSONObject jsonObject = (JSONObject) JSON.toJSON(user);

        System.out.println(jsonObject);

    }

    public static void main(String []args){
        //listToJsonString();
        //();
       // stringToMap();
       // jsonToJsonObject();
       // jsonStrToJsonBean();
        //jsonStrToJsonArray();
       // javaBeanToJsonStr();
        //jsonStrToBeanList();
        beanToJsonObject();

    }
}

附录02:

package entity;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by baizhuang on 2019/9/23 16:30.
 */

public class Test {

    public static List<User> findAllUser(){
        return  Arrays.asList(
                new User(1,"zhangsan","zhang","北京"),
                new User(2,"lisi","li","上海"));

    }


    public static void listToJsonString(){
        List<User> users= findAllUser();

        System.out.println(users);

        String str = JSONObject.toJSONString(users);

        System.out.println(str);
    }


    public static  void maptoJsonObject(){
        Map<String,Object> map = new HashMap();
        map.put("name","zhangsan");
        map.put("age","15");
        JSONObject jsonObject = new JSONObject(map);
        System.out.printf("Json:"+jsonObject);

        String jsonStr = JSON.toJSONString(map);
        System.out.println(jsonStr);

    }


    public static void stringToMap(){

        String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

        JSONObject  jsonObject = JSONObject.parseObject(jsonStr);

        Map<String,Object> map = jsonObject;

    }


    public static  void jsonToJsonObject(){
        String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

        JSONObject jsonObject = JSON.parseObject(jsonStr);

        System.out.println(jsonObject);
    }

    public static void jsonStrToJsonBean(){
        String jsonStr = "{\"name\":\"zhangsan\",\"email\":\"15\"}";

        User user = JSON.parseObject(jsonStr,User.class);

        System.out.println(user);
    }

    public static void jsonStrToJsonArray(){
        String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";

        JSONArray array = JSON.parseArray(jsonStr);

        for(int i=0;i<array.size();i++){
            System.out.println(array.get(i));
        }
    }

    public static void javaBeanToJsonStr(){
        User user = new User(11,"wangwu","wangwu@163.com","上海");

        String str = JSON.toJSONString(user);
        System.out.println(str);
    }

    public static void jsonStrToBeanList(){
        String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";
        List<User> list = JSON.parseArray(jsonStr,User.class);
        for(User user : list){
            System.out.println(user);
        }
    }

    public static void beanToJsonObject(){
        User user = new User(11,"wangwu","wangwu@163.com","上海");

        JSONObject jsonObject = (JSONObject) JSON.toJSON(user);

        System.out.println(jsonObject);

    }

    public static void main(String []args){
        //listToJsonString();
        //();
       // stringToMap();
       // jsonToJsonObject();
       // jsonStrToJsonBean();
        //jsonStrToJsonArray();
       // javaBeanToJsonStr();
        //jsonStrToBeanList();
        beanToJsonObject();

    }
}

 

 
posted @ 2021-04-25 13:51  Keep_Silent  阅读(25)  评论(0编辑  收藏  举报