首頁 > 軟體

Java物件和Json文字轉換工具類的實現

2022-03-02 10:01:15

Json 是一個用於 Java 物件 和 Json 文字 相互轉換的工具類。

安裝

下載原始碼

git clone https://github.com/njdi/durian.git

編譯原始碼

cd durian/

切換至最新版本(Tag),如:0.4,

git checkout 0.4

編譯安裝至本地 Maven 倉庫:

mvn clean package

新增依賴

SpringBoot 應用使用 Config 時,需要在 Maven pom.xml 中新增:

<dependency>
  <groupId>io.njdi</groupId>
  <artifactId>durian-common</artifactId>
  <version>${version}</version>
</dependency>

${version} 替換為具體的版本號,如:0.4。

Java 物件

Java 物件支援如下型別:基本資料型別、陣列、列表、字典。

基本資料型別

  • Integer/int
  • Long/long
  • Float/float
  • Double/double
  • Boolean/boolean
  • String

陣列

  • 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 物件 轉換為 Json 文字

Java 物件 轉換為 Json 文字可以使用方法:

Json.toJson(obj)

基本資料型別

String json;

json = Json.toJson(1);
json = Json.toJson(1.0);
json = Json.toJson(true);
json = Json.toJson("str");

陣列

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 文字 轉換為 Java 物件

Json 文字 轉換為 Java 物件時,需要通過引數指定轉換物件的型別資訊:

Json.fromJson(json, Class)

或者

Json.fromJson(json, Type)

基本資料型別

Json 文字 轉換為 基本資料型別時,需要使用 Type 指定轉換型別,如:

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

基本資料型別 和 Type 的對應關係:

  • 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

陣列

Json 文字 轉換為 陣列時,需要使用 Type 指定轉換陣列的元素型別,如:

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

陣列的元素型別 和 Type 的對應關係:

  • 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 文字 轉換為 列表時,需要使用 Type 指定轉換列表的元素型別,如:

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

列表的元素型別 和 Type 的對應關係:

  • 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 文字 轉換為 字典時,需要使用 Type 指定轉換字典的元素值型別,如:

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 文字 轉換為 類物件時,需要使用 Class 指定轉換物件的型別,如:

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

 到此這篇關於Java物件和Json文字轉換工具類的實現的文章就介紹到這了,更多相關Java物件和Json文字轉換 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com