好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java对象和Json文本转换工具类的实现

Json  是一个用于  Java 对象  和  Json 文本  相互转换的工具类。

安装

下载源码

?

1

git clone https: //github 测试数据 /njdi/durian .git

编译源码

?

1

cd durian/

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

?

1

git checkout 0.4

编译安装至本地 Maven 仓库:

?

1

mvn clean package

添加依赖

SpringBoot 应用使用 Config 时,需要在 Maven pom.xml 中添加:

?

1

2

3

4

5

< 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 文本可以使用方法:

?

1

Json.toJson(obj)

基本数据类型

?

1

2

3

4

5

6

String json;

 

json = Json.toJson( 1 );

json = Json.toJson( 1.0 );

json = Json.toJson( true );

json = Json.toJson( "str" );

数组

?

1

2

3

4

5

6

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" });

列表

?

1

2

3

4

5

6

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" ));

字典

?

1

2

3

4

5

6

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"));

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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 对象时,需要通过参数指定转换对象的类型信息:

?

1

Json.fromJson(json, Class)

或者

?

1

Json.fromJson(json, Type)

基本数据类型

Json 文本 转换为 基本数据类型时,需要使用  Type  指定转换类型,如:

?

1

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  指定转换数组的元素类型,如:

?

1

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  指定转换列表的元素类型,如:

?

1

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  指定转换字典的元素值类型,如:

?

1

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  指定转换对象的类型,如:

?

1

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

 到此这篇关于Java对象和Json文本转换工具类的实现的文章就介绍到这了,更多相关Java对象和Json文本转换 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://HdhCmsTestcnblogs测试数据/yurunmiao/p/15951965.html

查看更多关于Java对象和Json文本转换工具类的实现的详细内容...

  阅读:22次