Skip to content

fastjson.jar是阿里开发的一款专门用于Java开发的包,可以方便的实现json对象与JavaBean对象的转换,实现JavaBean对象与json字符串的转换,实现json对象与json字符串的转换。实现json的转换方法很多,最后的实现结果都是一样的。

xml
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.10</version>
</dependency>

fastjson 三个主要的类:

  1. JSONObject 代表 json 对象
    • JSONObject实现了Map接口, 猜想 JSONObject底层操作是由Map实现的。
    • JSONObject对应json对象,通过各种形式的get()方法可以获取json对象中的数据,也可利用诸如size(),isEmpty()等方法获取"键:值"对的个数和判断是否为空。其本质是通过实现Map接口并调用接口中的方法完成的。
  2. JSONArray 代表 json 对象数组
    • 内部是有List接口中的方法来完成操作的。
  3. JSON代表 JSONObject和JSONArray的转化
    • JSON类源码分析与使用
    • 仔细观察这些方法,主要是实现json对象,json对象数组,javabean对象,json字符串之间的相互转化。

代码测试

java
package com.kuang.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.kuang.pojo.User;

import java.util.ArrayList;
import java.util.List;

public class FastJsonDemo {
   public static void main(String[] args) {
       //创建一个对象
       User user1 = new User(&quot;星空小屋1号&quot;, 3, &quot;男&quot;);
       User user2 = new User(&quot;星空小屋2号&quot;, 3, &quot;男&quot;);
       User user3 = new User(&quot;星空小屋3号&quot;, 3, &quot;男&quot;);
       User user4 = new User(&quot;星空小屋4号&quot;, 3, &quot;男&quot;);
       List&lt;User&gt; list = new ArrayList&lt;User&gt;();
       list.add(user1);
       list.add(user2);
       list.add(user3);
       list.add(user4);

       System.out.println(&quot;*******Java对象 转 JSON字符串*******&quot;);
       String str1 = JSON.toJSONString(list);
       System.out.println(&quot;JSON.toJSONString(list)==&gt;&quot;+str1);
       String str2 = JSON.toJSONString(user1);
       System.out.println(&quot;JSON.toJSONString(user1)==&gt;&quot;+str2);

       System.out.println(&quot;\n****** JSON字符串 转 Java对象*******&quot;);
       User jp_user1=JSON.parseObject(str2,User.class);
       System.out.println(&quot;JSON.parseObject(str2,User.class)==&gt;&quot;+jp_user1);

       System.out.println(&quot;\n****** Java对象 转 JSON对象 ******&quot;);
       JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
       System.out.println(&quot;(JSONObject) JSON.toJSON(user2)==&gt;&quot;+jsonObject1.getString(&quot;name&quot;));

       System.out.println(&quot;\n****** JSON对象 转 Java对象 ******&quot;);
       User to_java_user = JSON.toJavaObject(jsonObject1, User.class);
       System.out.println(&quot;JSON.toJavaObject(jsonObject1, User.class)==&gt;&quot;+to_java_user);
  }
}