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);
字典的元素值类型 和 Type 的对应关系:
- 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);
Json:Java对象和Json文本转换工具类的更多相关文章
- java 二进制数字符串转换工具类
java 二进制数字符串转换工具类 将二进制转换成八进制 将二进制转换成十进制 将二进制转换成十六进制 将十进制转换成二进制 package com.iteye.injavawetrust.ad; i ...
- 时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS
YYYYMMDD24HHMISS:24小时制时间(显示上只是比YYYYMMDDHHMISS中间多了一个24),例:2018102224112440 YYYYMMDDHHMISS:12小时制时间,例20 ...
- Java对象、Json、Xml转换工具Jackson使用
在Java项目中將一个对象转换成一段Json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如Gson.JSON-lib.Jackson等等.本文主要介绍Jackson的使用,Jacks ...
- GSON中Java对象与JSON互相转换——(一)
json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串. 常用的json转换工具有如下几种: 1)jsonlib 2)Gson:google 3)fastjson:阿 ...
- Java基础97 json插件的使用(java对象和json字符串对象之间的转换)
1.需要用到的包 2.实例 实体类 people package com.shore.entity; /** * @author DSHORE/2019-4-19 * */ public class ...
- java对象和json对象之间互相转换
import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.Li ...
- Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)
首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐 ...
- jackson java对象和json对象的互相转换
概述 Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”. Jackson框架包含了3个核心库:streaming,databind,annotation ...
- java对象与json字符串的互相转换
java对象与json字符串的互相转换 1.采用 net.sf.json.JSONObject maven依赖包: <dependency> <groupId>net.sf.j ...
随机推荐
- HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?
作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...
- Java将引入新的对象类型来解决内存利用问题
2022年Java将有什么新的特性和改进,我相信很多Java开发者都想知道.结合Java语言架构师布莱恩·格茨(Brian Goetz)最近的一些分享,胖哥给大家爆个料.老规矩,点赞走起. Valha ...
- UML 有关类图知识及类间关系
原文链接:https://blog.csdn.net/mj_ww/article/details/53020346 1. 类的含义 类图(Class diagram)显示了系统的静态结构,而系统的静态 ...
- 解决vscode下载很慢的问题
1.打开vscode官网,https://code.visualstudio.com; 2.点击下载稳定版;这里我的电脑是win10版本 3.下载时可以去谷歌的下载内容里面,看到正在下载的vscode ...
- golang中channel
1. Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication). 2. select package main im ...
- Tomcat服务器和Servlet版本的对应关系
Tomcat服务器和Servlet版本的对应关系 Servlet 程序从2.5版本是现在世面使用最多的版本(xml配置) 到了Servlet3.0后.就是注解版本的Servlet使用
- Kubernetes中部署wordpress+mysql(六)
经过前面的内容其实对k8s已经有了服务迁移的能力了,下面这篇文章主要是用来搭建一些后面要用的组件 一.创建wordpress命名空间 kubectl create namespace wordpres ...
- linux单用户模式修改密码与系统启动级别
目录 一:系统启动级别 二:单用户模式修改密码 一:系统启动级别 系统启动级别: 0 关机 1 单用户模式(无法通过xshell方式使用)(虚拟机操作)(系统云服务商后台) 2 多用户无网络模式 3 ...
- postgresql dba常用sql查询语句
查看帮助命令 DB=# help --总的帮助 DB=# \h --SQL commands级的帮助 DB=# \? --psql commands级的帮助 \dn[S+] [PATTERN],其中[ ...
- Kubeadm部署K8S(kubernetes)集群(测试、学习环境)-单主双从
1. kubernetes介绍 1.1 kubernetes简介 kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理.目的是实现资源管理的自动 ...