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

