一、工具類API
API | 說明 |
---|---|
toJSONString(Object object) | 將任意對象轉爲json字符串, 並忽略值爲 null的屬性(默認) |
toJSONStringNoNull(Object object) | 將任意對象轉爲json字符串, 並忽略值爲null的屬性 |
toJSONStringIsNull(Object object) | 將任意對象轉爲json字符串轉爲json字符串, 並保留值爲null的屬性 |
parse(String text) | 把 JSON字符串轉爲 Object (接收時可強轉任意javaBand) |
toJSON(Object javaObject) | 將JavaBean(任意對象) 轉換爲 Object, (接收時可強轉任意javaBand) |
parseObject(String text) | 把JSON字符串 轉爲 JSONObject { } |
parseArray(String text) | 把JSON字符串 轉爲 JSONArray [ { } , { } , … , { } ] |
parseObject(String text, Class clazz) | 把JSON字符串轉爲JavaBean |
parseEntity(String text, Class clazz) | 把JSON 字符串轉爲實體類 |
parseEntity(Map map, Class t) | 將Map 轉換爲 實體類 |
parseMap(String text) | 把JSON字符串轉爲 Map |
parseMap(T t) | 將實體類 轉換爲 Map |
parseList(String text) | 把JSON字符串轉爲 List |
parseList(String text, Class clazz) | 把JSON 字符串轉爲 List List<Entity/Map/List> ==> List<任意對象> |
二、工具類方法 JsonUtil
maven 依賴
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
package com.rely.base.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* TODO fastjson-JSON 工具類擴展
* <p>
* // TODO fastjson - 原API 一覽
* // public static final Object parse(String text); // 把JSON文本parse爲JSONObject或者JSONArray
* // public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
* // public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse爲JavaBean
* // public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
* // public static final <T> List<T> parseArray(String text, Class<T> clazz); // 把JSON文本parse成JavaBean集合
* // public static final String toJSONString(Object object); // 將JavaBean 序列化爲JSON文本
* // public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean 序列化爲帶格式的JSON文本
* // public static final Object toJSON(Object javaObject); // 將JavaBean轉換爲JSONObject或者JSONArray。
*
* @author ws
* @mail [email protected]
* @date 2020/4/24 0024 9:55
*/
@SuppressWarnings("ALL")
public class JsonUtil {
//===================================================================================================
//===================================================================================================
//======================================= 轉 Json字符串 ==============================================
//===================================================================================================
//===================================================================================================
/**
* TODO 將任意對象轉爲json字符串, 並忽略值爲 null的屬性(默認)
*/
public static String toJSONString(Object object) {
return JSON.toJSONString(object);
}
/**
* TODO 將任意對象轉爲json字符串, 並忽略值爲null的屬性
*/
public static String toJSONStringNoNull(Object object) {
return JSON.toJSONString(object, SerializerFeature.PrettyFormat);
}
/**
* TODO 將任意對象轉爲json字符串轉爲json字符串, 並保留值爲null的屬性
*/
public static String toJSONStringIsNull(Object object) {
return JSON.toJSONString(object, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
}
//===================================================================================================
//===================================================================================================
//========================================== 轉 Object ==============================================
//===================================================================================================
//===================================================================================================
/**
* TODO 把 JSON字符串轉爲 Object (接收時可強轉任意javaBand)
*/
public static Object parse(String text) {
return JSON.parse(text);
}
/**
* TODO 將JavaBean(任意對象) 轉換爲 Object, (接收時可強轉任意javaBand)
*/
public static Object toJSON(Object javaObject) {
return JSON.toJSON(javaObject);
}
//===================================================================================================
//===================================================================================================
//========================================= 轉 JSONObject ==========================================
//================================== JSONObject的數據是用 { } 來表示的) == ========================
//===================================================================================================
/**
* TODO 把JSON字符串 轉爲 JSONObject
*/
public static JSONObject parseObject(String text) {
return JSON.parseObject(text);
}
//===================================================================================================
//===================================================================================================
//========================================== 轉 JSONArray ===========================================
//================== JSONArray,顧名思義是由JSONObject構成的數組,用 [ { } , { } , ...... , { } ] ====
//===================================================================================================
/**
* TODO 把JSON字符串 轉爲 JSONArray
*/
public static JSONArray parseArray(String text) {
return JSON.parseArray(text);
}
//===================================================================================================
//===================================================================================================
//=========================================== 轉 javaBean ===========================================
//===================================================================================================
//===================================================================================================
/**
* TODO 把JSON字符串轉爲JavaBean
*/
public static <T> T parseObject(String text, Class<T> clazz) {
return JSON.parseObject(text, clazz);
}
//===================================================================================================
//===================================================================================================
//============================================= 轉實體類 ==============================================
//===================================================================================================
//===================================================================================================
/**
* TODO 把JSON 字符串轉爲實體類
*/
public static <T> T parseEntity(String text, Class<T> clazz) {
return JSON.parseObject(text, clazz);
}
/**
* TODO 將Map 轉換爲 實體類
*/
public static <T> T parseEntity(Map map, Class<T> t) {
String jsons = toJSONStringIsNull(map);
T t1 = JSON.parseObject(jsons, t);
return t1;
}
//===================================================================================================
//===================================================================================================
//============================================= 轉Map ==============================================
//===================================================================================================
//===================================================================================================
/**
* TODO 把JSON字符串轉爲 Map
*/
public static Map parseMap(String text) {
return JSON.parseObject(text, Map.class);
}
/**
* TODO 將實體類 轉換爲 Map
*/
public static <T> Map parseMap(T t) {
String jsons = toJSONStringIsNull(t);
Map paramMap = (Map) JSONObject.parseObject(jsons);
return paramMap;
}
//===================================================================================================
//===================================================================================================
//============================================= 轉List ==============================================
//===================================================================================================
//===================================================================================================
/**
* TODO 把JSON字符串轉爲 List
*
* @return
*/
public static List parseList(String text) {
return JSON.parseObject(text, List.class);
}
/**
* TODO 把JSON 字符串轉爲 List<Entity/Map/List> ==> List<任意對象>
*/
public static <T> List<T> parseList(String text, Class<T> clazz) {
return JSON.parseArray(text, clazz);
}
/**
* TODO 測試
*
* @param args
* @return void
* @author ws
* @mail [email protected]
* @date 2020/4/24 0024 10:23
*/
public static void main(String[] args) {
// TODO 測試是否包含null的值
// User user = new User();
// user.setId(1L);
// user.setUsername("張三");
// user.setPassword("");
// user.setMobile(null);
// System.out.println("toJSONString-不包含null==" + toJSONString(user));
// System.out.println("toJSONString-包含null==" + toJSONStringIsNull(user));
// System.out.println("toJSONString-不包含null==" + toJSONStringNoNull(user));
// TODO 測試Map 與實體類的相互轉換
// User user = new User();
// user.setId(1L);
// user.setUsername("張三");
// user.setPassword("");
// user.setMobile(null);
// Map map = parseMap(user);
// User user2 = parseEntity(map, User.class);
// System.out.println();
// 測試json字符串 轉 List<Entity>
User user = new User();
List<User> users = new ArrayList<>();
for (int i = 0; i < 10; i++) {
user.setId(i);
user.setUsername("張三");
user.setPassword("");
user.setMobile(null);
users.add(user);
}
String jsons = toJSONStringIsNull(users);
List list = parseList(jsons);
List<User> users2 = parseList(jsons, User.class);
System.out.println();
}
@Data
static class User {
private long id;
private String username;
private String password;
private String mobile;
}
}