FastJson框架解析Json


一、簡介

FastJSON是一個很好的java開源json工具類庫,相比其他同類的json類庫,它的速度的確是fast,最快!

FastJSON是阿里巴巴的開源框架,被不少企業使用,是一個極其優秀的Json框架,Github地址:https://github.com/alibaba/fastjson

二、FastJson使用

  FastJson對於json格式字符串的解析主要用到了下面三個類: 

  • JSON:fastJson的解析器,用於JSON格式字符串與JSON對象及javaBean之間的轉換
  • JSONObject:fastJson提供的json對象 
  • JSONArray:fastJson提供json數組對象

三者繼承關系如下:

public abstract class JSON implements JSONStreamAware, JSONAware {...}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public class JSONArray extends JSON implements List<Object>, Cloneable, RandomAccess, Serializable {
private static final long serialVersionUID = 1L;
private final List<Object> list;
protected transient Object relatedArray;
protected transient Type componentType;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public class JSONObject extends JSON implements Map<String, Object>, Cloneable, Serializable, InvocationHandler {
private static final long serialVersionUID = 1L;
private static final int DEFAULT_INITIAL_CAPACITY = 16;
private final Map<String, Object> map;

1、引入依賴

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.51</version>//選擇合適版本即可
</dependency>

2、常用方法

抽象類JSON中的常用方法(部分):
public static Object parse(String text);//將字符串解析為對象
public static JSONArray parseArray(String text);//將字符串解析為JSONArray
public static <T> List<T> parseArray(String text, Class<T> clazz);//將字符串解析為List
public static List<Object> parseArray(String text, Type[] types);//將字符串解析為List
public static <T> T parseObject(String text, Class<T> clazz);//將字符串解析為對象
public static JSONObject parseObject(String text)//將字符串解析為JSONObeject
public static Object toJSON(Object javaObject)//
public static String toJSONString(Object object)//將對象轉換為JSONString

類JSONObject中的常用方法(部分):
public boolean containsKey(Object key)//是否包含指定對象Key,返回布爾值
public boolean containsValue(Object value)//是否包含指定對象Value,返回布爾值
public Object get(Object key)//通過對象Key,返回對象
public Boolean getBoolean(String key)//通過字符串Key,返回布爾值
public int getIntValue(String key)//通過指定字符串Key,返回int
public JSONArray getJSONArray(String key)//通過指定字符串Key,返回JSONArray
public JSONObject getJSONObject(String key)//通過指定字符串Key,返回JSONObject
public <T> T getObject(String key, Class<T> clazz)//通過指定字符串Key和類對象,返回指定的對象


類JSONArray中的常用方法(部分):
public boolean add(Object e)//添加指定對象,添加成功返回true,否則返回false
public boolean contains(Object o)//是否包含指定對象,包含返回true,不包含返回false
public Object get(int index)//通過索引返回對象
public Boolean getBoolean(int index)//通過索引返回布爾值
public Long getLong(int index)//通過索引返回Long
public JSONObject getJSONObject(int index)//通過索引返回JSONObject
public Object remove(int index)//通過索引刪除指定對象,並返回刪除的對象
public Object set(int index, Object element)//設置指定索引的元素,返回原有對象
public int size() //返回JSONArray的大小
 
        

 實例代碼可抽取為簡單工具類FastJsonUtils

package edu.tyut;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

import java.util.List;
import java.util.Map;

/**
 * FastJson工具類
 */
public class FastJsonUtils {


    /**
     * 功能描述:把JSON數據轉換成指定的java對象
     * @param jsonData JSON數據
     * @param clazz 指定的java對象
     * @return 指定的java對象
     */
    public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
        return JSON.parseObject(jsonData, clazz);
    }

    /**
     * 功能描述:把java對象轉換成JSON數據
     * @param object java對象
     * @return JSON數據
     */
    public static String getBeanToJson(Object object) {
        return JSON.toJSONString(object);
    }

    /**
     * 功能描述:把JSON數據轉換成指定java對象的List
     * @param jsonData JSON數據
     * @param clazz 指定的java對象
     * @return List<T>
     */
    public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
        return JSON.parseArray(jsonData, clazz);
    }

    /**
     * 功能描述:把JSON數據轉換成較為復雜的List<Map<String, Object>>
     * @param jsonData JSON數據
     * @return List<Map<String, Object>>
     */
    public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
        return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
        });
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM