fastJson相关文档和源码

简单认识fastJson fastJson是一个 Java 库,可以 将Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象,同时它还可以操作任何 Java 对象,即使是一些 预先存在的没有源码的对象 。

有时间可以

1.Fastjson常用的使用方法

1.1.jsonString convert to javabean

import com.alibaba.fastjson.*;

//用法一 :jsonString 转换JSONObject
JSONObject jsonObj = JSON.parseObject(jsonStr);

//用法二 :JSONString转换成bean/Map
Model model = JSON.parseObject(jsonStr, Model.class);

//用法三 :JSONString转换自定义泛型
Type type = new TypeReference<List<Model>>() {
          
   }.getType(); 
List<Model> list = JSON.parseObject(jsonStr, type);

1.2.javabean to jsonString

import com.alibaba.fastjson.JSON;

//用法一 : 对象转换成jsonString
Model model = ...; 
String jsonStr = JSON.toJSONString(model);

//用法二 : 对象转换成jsonString格式的byte数组
byte[] jsonBytes = JSON.toJSONBytes(model);

//用法三 : 对象转换成jsonString并将jsonString保存到OutputStream 或Writer
OutputStream os;
JSON.writeJSONString(os, model);
Writer writer = ...;
JSON.writeJSONString(writer, model);

2.Fastjson具体使用

2.1.Bean对象与jsonString的相互转换

import com.alibaba.fastjson.JSON;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;

public class Test1 {
          
   
    public static void main(String[] args) {
          
   
        Map<String,Object> jsonMap = new HashMap<String,Object>();
        Map<String,Object> beanMap = new HashMap<String,Object>();
        Map<String,Object> MapForList = new HashMap<String,Object>();
        List<Map<String,Object>> jsonList = new ArrayList<Map<String,Object>>();
        MapForList.put("1","001");
        MapForList.put("2","002");
        jsonList.add(MapForList);
        
        beanMap.put("a","v1");
        beanMap.put("b","v2");
        
        jsonMap.put("key1","value1");
        jsonMap.put("key2",beanMap);
        jsonMap.put("key3",jsonList);
        
        String jsonStr = JSON.toJSONString(jsonMap);
        System.out.println("javaBean序列化执行完毕!");
        
        String jsonString ="{"key1":"value1","key2":{"a":"v1","b":"v2"},"key3":[{"1":"1","2":"2"}]}";
        Map<String,Object> stringToMap = JSON.parseObject(jsonString,Map.class);
        System.out.println("jsonString反序列化完成!");
        
        List<Map<String,Object>> list = (List<Map<String, Object>>) stringToMap.get("key3");
    }
}

2.2.jsonString合并

/**
     * 将srcJObjStr和addJObjStr合并,如果有重复字段,以addJObjStr为准
     * @param srcJObjStr 原jsonObject字符串
     * @param addJObjStr 需要加入的jsonObject字符串 
     * @return srcJObjStr
     */
    private String combineJson(String srcJObjStr, String addJObjStr) throws JSONException {
          
   
        if(addJObjStr == null || addJObjStr.isEmpty()) {
          
   
            return srcJObjStr;
        }
        if(srcJObjStr == null || srcJObjStr.isEmpty()) {
          
   
            return addJObjStr;
        }
        
        JSONObject srcJObj = new JSONObject(srcJObjStr);
        JSONObject addJObj = new JSONObject(addJObjStr);
        
        combineJson(srcJObj, addJObj);
        return srcJObj.toString();
    } 
    
    @SuppressWarnings("unchecked")
    private JSONObject combineJson(JSONObject srcObj, JSONObject addObj) throws JSONException {
          
   
 
        Iterator<String> itKeys1 = addObj.keys();
        String key, value;
        while(itKeys1.hasNext()){
          
     
            key = itKeys1.next();
            value = addObj.optString(key);
            
            srcObj.put(key, value);
        }  
        return srcObj;
    }
经验分享 程序员 微信小程序 职场和发展