Java對象和Json文本轉(zhuǎn)換工具類的實(shí)現(xiàn)
Json 是一個用于 Java 對象 和 Json 文本 相互轉(zhuǎn)換的工具類。
安裝
下載源碼
git clone https://github.com/njdi/durian.git
編譯源碼
cd durian/
切換至最新版本(Tag),如:0.4,
git checkout 0.4
編譯安裝至本地 Maven 倉庫:
mvn clean package
添加依賴
SpringBoot 應(yīng)用使用 Config 時,需要在 Maven pom.xml 中添加:
<dependency> <groupId>io.njdi</groupId> <artifactId>durian-common</artifactId> <version>${version}</version> </dependency>
${version} 替換為具體的版本號,如:0.4。
Java 對象
Java 對象支持如下類型:基本數(shù)據(jù)類型、數(shù)組、列表、字典。
基本數(shù)據(jù)類型
- Integer/int
- Long/long
- Float/float
- Double/double
- Boolean/boolean
- String
數(shù)組
- int[]
- long[]
- float[]
- double[]
- boolean[]
- String[]
列表
- List
- List
- List
- List
- List
- List
- List
字典
- Map<String, Integer>
- Map<String, Long>
- Map<String, Float>
- Map<String, Double>
- Map<String, Boolean>
- Map<String, String>
- Map<String, Object>
類
- Class
Java 對象 轉(zhuǎn)換為 Json 文本
Java 對象 轉(zhuǎn)換為 Json 文本可以使用方法:
Json.toJson(obj)
基本數(shù)據(jù)類型
String json; json = Json.toJson(1); json = Json.toJson(1.0); json = Json.toJson(true); json = Json.toJson("str");
數(shù)組
String json; json = Json.toJson(new int[]{1, 2, 3}); json = Json.toJson(new double[]{1.0, 2.0, 3.0}); json = Json.toJson(new boolean[]{true, false}); json = Json.toJson(new String[]{"1", "2.0", "true"});
列表
String json; json = Json.toJson(List.of(1, 2, 3)); json = Json.toJson(List.of(1.0, 2.0, 3.0)); json = Json.toJson(List.of(true, false)); json = Json.toJson(List.of("1", "2.0", "true"));
字典
String json; json = Json.toJson(Map.of("key1", 1, "key2", 2)); json = Json.toJson(Map.of("key1", 1.0, "key2", 2.0)); json = Json.toJson(Map.of("key1", true, "key2", false)); json = Json.toJson(Map.of("key1", "str", "key2", "2.0"));
類
public static class MyObject { private int a; private double b; private boolean c; private String d; } MyObject object = new MyObject(); object.a = 1; object.b = 2.0; object.c = true; object.d = "str"; String json = Json.toJson(object);
Json 文本 轉(zhuǎn)換為 Java 對象
Json 文本 轉(zhuǎn)換為 Java 對象時,需要通過參數(shù)指定轉(zhuǎn)換對象的類型信息:
Json.fromJson(json, Class)
或者
Json.fromJson(json, Type)
基本數(shù)據(jù)類型
Json 文本 轉(zhuǎn)換為 基本數(shù)據(jù)類型時,需要使用 Type 指定轉(zhuǎn)換類型,如:
int a = Json.fromJson("1", Json.JsonType.INT);
基本數(shù)據(jù)類型 和 Type 的對應(yīng)關(guān)系:
- Integer/int -> Json.JsonType.INT
- Long/long -> Json.JsonType.LONG
- Float/float -> Json.JsonType.FLOAT
- Double/double -> Json.JsonType.DOUBLE
- Boolean/boolean -> Json.JsonType.BOOLEAN
- String -> Json.JsonType.STRING
數(shù)組
Json 文本 轉(zhuǎn)換為 數(shù)組時,需要使用 Type 指定轉(zhuǎn)換數(shù)組的元素類型,如:
int[] arr = Json.fromJson("[1, 2, 3]", Json.JsonType.INT_ARRAY);
數(shù)組的元素類型 和 Type 的對應(yīng)關(guān)系:
- int[] -> Json.JsonType.INT_ARRAY
- long[] -> Json.JsonType.LONG_ARRAY
- float[] -> Json.JsonType.FLOAT_ARRAY
- double[] -> Json.JsonType.DOUBLE_ARRAY
- boolean[] -> Json.JsonType.BOOLEAN_ARRAY
- String[] -> Json.JsonType.STRING_ARRAY
列表
Json 文本 轉(zhuǎn)換為 列表時,需要使用 Type 指定轉(zhuǎn)換列表的元素類型,如:
List<Integer> list = Json.fromJson("[1, 2, 3]", Json.JsonType.INT_LIST);
列表的元素類型 和 Type 的對應(yīng)關(guān)系:
- List -> Json.JsonType.INT_LIST
- List -> Json.JsonType.LONG_LIST
- List -> Json.JsonType.FLOAT_LIST
- List -> Json.JsonType.DOUBLE_LIST
- List -> Json.JsonType.BOOLEAN_LIST
- List -> Json.JsonType.STRING_LIST
- List
字典
Json 文本 轉(zhuǎn)換為 字典時,需要使用 Type 指定轉(zhuǎn)換字典的元素值類型,如:
Map<String, Integer> map = Json.fromJson("{'a': 1, 'b': 2}", Json.JsonType.INT_MAP);
- Map<String, Integer> -> Json.JsonType.INT_MAP
- Map<String, Long> -> Json.JsonType.LONG_MAP
- Map<String, Float> -> Json.JsonType.FLOAT_MAP
- Map<String, Double> -> Json.JsonType.DOUBLE_MAP
- Map<String, Boolean> -> Json.JsonType.BOOLEAN_MAP
- Map<String, String> -> Json.JsonType.STRING_MAP
- Map<String, Object> -> Json.JsonType.OBJECT_MAP
類
Json 文本 轉(zhuǎn)換為 類對象時,需要使用 Class 指定轉(zhuǎn)換對象的類型,如:
MyObject obj = Json.fromJson("{'a': 1, 'b': 2.0, 'c': true, d: 'str'}", MyObject.class);
到此這篇關(guān)于Java對象和Json文本轉(zhuǎn)換工具類的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java對象和Json文本轉(zhuǎn)換 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)動態(tài)創(chuàng)建類操作示例
這篇文章主要介紹了Java實(shí)現(xiàn)動態(tài)創(chuàng)建類操作,結(jié)合完整示例形式分析了Java動態(tài)創(chuàng)建類的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2020-02-02SpringBoot配置shiro安全框架的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot配置shiro安全框架的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04JAVA設(shè)計(jì)模式之備忘錄模式原理與用法詳解
這篇文章主要介紹了JAVA設(shè)計(jì)模式之備忘錄模式,簡單說明了備忘錄模式的概念、原理并結(jié)合實(shí)例形式分析了java備忘錄模式的具體定義及使用方法,需要的朋友可以參考下2017-08-08Spring中@Value讀取properties作為map或list的操作
這篇文章主要介紹了Spring中@Value讀取properties作為map或list的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07SpringMVC實(shí)現(xiàn)Validation校驗(yàn)過程詳解
這篇文章主要介紹了SpringMVC實(shí)現(xiàn)Validation校驗(yàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11Java +Tomcat + SpringMVC實(shí)現(xiàn)頁面訪問示例解析
這篇文章主要介紹了Java +Tomcat + SpringMVC實(shí)現(xiàn)頁面訪問示例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07IDEA 如何控制編輯左側(cè)的功能圖標(biāo)ICON(操作步驟)
很多朋友被idea左側(cè)的圖標(biāo)不見了這一問題搞的焦頭爛額,不知道該怎么操作,今天小編就交大家如何控制編輯左側(cè)的功能圖標(biāo) ICON,文字內(nèi)容不多,主要通過兩張截圖給大家說明,感興趣的朋友一起看看吧2021-05-05