加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FastJson框架解析Json

发布时间:2020-12-16 18:43:03 所属栏目:百科 来源:网络整理
导读:一、简介 FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快! FastJSON是阿里巴巴的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址:https://github.com/alibaba/fastjson 二、FastJson使用

一、简介

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>,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>>>() {
        });
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读