溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java對(duì)象和Json文本怎么實(shí)現(xiàn)轉(zhuǎn)換

發(fā)布時(shí)間:2022-03-02 09:29:01 來源:億速云 閱讀:114 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Java對(duì)象和Json文本怎么實(shí)現(xiàn)轉(zhuǎn)換”,在日常操作中,相信很多人在Java對(duì)象和Json文本怎么實(shí)現(xiàn)轉(zhuǎn)換問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Java對(duì)象和Json文本怎么實(shí)現(xiàn)轉(zhuǎn)換”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

Json 是一個(gè)用于 Java 對(duì)象 和 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 時(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ì)象支持如下類型:基本數(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 對(duì)象 轉(zhuǎn)換為 Json 文本

Java 對(duì)象 轉(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 對(duì)象

Json 文本 轉(zhuǎn)換為 Java 對(duì)象時(shí),需要通過參數(shù)指定轉(zhuǎn)換對(duì)象的類型信息:

Json.fromJson(json, Class)

或者

Json.fromJson(json, Type)

基本數(shù)據(jù)類型

Json 文本 轉(zhuǎn)換為 基本數(shù)據(jù)類型時(shí),需要使用 Type 指定轉(zhuǎn)換類型,如:

int a = Json.fromJson("1", Json.JsonType.INT);

基本數(shù)據(jù)類型 和 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ù)組的元素類型,如:

int[] arr = Json.fromJson("[1, 2, 3]", Json.JsonType.INT_ARRAY);

數(shù)組的元素類型 和 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)換列表的元素類型,如:

List<Integer> list = Json.fromJson("[1, 2, 3]", Json.JsonType.INT_LIST);

列表的元素類型 和 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)換字典的元素值類型,如:

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)換為 類對(duì)象時(shí),需要使用 Class 指定轉(zhuǎn)換對(duì)象的類型,如:

MyObject obj = Json.fromJson("{'a': 1, 'b': 2.0, 'c': true, d: 'str'}", MyObject.class);

到此,關(guān)于“Java對(duì)象和Json文本怎么實(shí)現(xiàn)轉(zhuǎn)換”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI