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

 更新时间:2022年03月02日 08:30:45   作者:萌猫他爸  
Json 是一个用于Java对象和Json文本相互转换的工具类,本文主要介绍了Java对象和Json文本转换工具类,具有一定的参考价值,感兴趣的可以了解一下

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文本转换 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringMVC中的表现层结果封装

    SpringMVC中的表现层结果封装

    这篇文章主要介绍了SpringMVC中的表现层结果封装,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Java实现动态创建类操作示例

    Java实现动态创建类操作示例

    这篇文章主要介绍了Java实现动态创建类操作,结合完整示例形式分析了Java动态创建类的具体步骤与相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • SpringBoot配置shiro安全框架的实现

    SpringBoot配置shiro安全框架的实现

    这篇文章主要介绍了SpringBoot配置shiro安全框架的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • JAVA设计模式之备忘录模式原理与用法详解

    JAVA设计模式之备忘录模式原理与用法详解

    这篇文章主要介绍了JAVA设计模式之备忘录模式,简单说明了备忘录模式的概念、原理并结合实例形式分析了java备忘录模式的具体定义及使用方法,需要的朋友可以参考下
    2017-08-08
  • SpringBoot整合MyBatis的代码详解

    SpringBoot整合MyBatis的代码详解

    这篇文章主要介绍了SpringBoot整合MyBatis笔记记录,大家需要注意在整合mybatis之前我们需要相对应的导入相关依赖,首先需要在java的目录和resources下创建mapper文件夹,对SpringBoot整合MyBatis的详细过程感兴趣的朋友一起看看吧
    2022-05-05
  • Spring中@Value读取properties作为map或list的操作

    Spring中@Value读取properties作为map或list的操作

    这篇文章主要介绍了Spring中@Value读取properties作为map或list的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringMVC实现Validation校验过程详解

    SpringMVC实现Validation校验过程详解

    这篇文章主要介绍了SpringMVC实现Validation校验过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Jenkins的安装配置详解

    Jenkins的安装配置详解

    这篇文章主要介绍了Jenkins的安装配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Java +Tomcat + SpringMVC实现页面访问示例解析

    Java +Tomcat + SpringMVC实现页面访问示例解析

    这篇文章主要介绍了Java +Tomcat + SpringMVC实现页面访问示例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • IDEA 如何控制编辑左侧的功能图标ICON(操作步骤)

    IDEA 如何控制编辑左侧的功能图标ICON(操作步骤)

    很多朋友被idea左侧的图标不见了这一问题搞的焦头烂额,不知道该怎么操作,今天小编就交大家如何控制编辑左侧的功能图标 ICON,文字内容不多,主要通过两张截图给大家说明,感兴趣的朋友一起看看吧
    2021-05-05

最新评论