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

目录
  • 安装
    • 下载源码
    • 编译源码
    • 添加依赖
  • Java对象
    • 基本数据类型
    • 数组
    • 列表
    • 字典
  • Java对象转换为Json文本
    • 基本数据类型
    • 数组
    • 列表
    • 字典
  • Json文本转换为Java对象
    • 基本数据类型
    • 数组
    • 列表
    • 字典

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

(0)

相关推荐

  • json转换成java对象示例

    json字符串转Java对象有很多工具可以使用,下面的小例子只是我练手的 复制代码 代码如下: import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; import com.jfinal.kit.JsonKit; public class JsonToJavaObject { public static void main(String[] args) {  O

  • java 和 json 对象间转换

    1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能. 2. json-lib 主页 : http://json-lib.sourceforge.net/ 3.执行环境 需要以下类库支持 commons-lang 2.5commons-beanutils 1.8.0commons-collections 3.2.1commons-logging 1.1.1e

  • java对象与json对象之间互相转换实现方法示例

    本文实例讲述了java对象与json对象之间互相转换实现方法.分享给大家供大家参考,具体如下: import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class MainClass { public st

  • Java中Json字符串直接转换为对象的方法(包括多层List集合)

    使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar 下面是例子代码: // JSON转换 JSONObject jsonObj = JSONObject.fromObject(jsonStr

  • JAVA对象JSON数据互相转换的四种常见情况

    1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码 代码如下: JSONArray array = JSONArray.fromObject(userlist);     String jsonstr = array.toString(); 2.把java对象转换成json对象,并转化为字符串 复制代码 代码如下: JSONObject object = JSONObject.fromObject(invite);    String str=object.toString

  • JAVA中JSONObject对象和Map对象之间的相互转换

    1.由json字符串转换成Map对象 如json字符串:{"contend":[{"bid":"22","carid":"0"},{"bid":"22","carid":"0"}],"result":100,"total":2} 下面直接附代码: //json字符串 String json

  • java对象与json对象间的相互转换的方法

    工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如下. JSONObject jsonObject = JSONObject.fromObject(jsonStr); 根据json中的键得到它的值 String name = jsonObject.getString("name"); int num = jsonObject.getInt

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

    目录 安装 下载源码 编译源码 添加依赖 Java对象 基本数据类型 数组 列表 字典 类 Java对象转换为Json文本 基本数据类型 数组 列表 字典 类 Json文本转换为Java对象 基本数据类型 数组 列表 字典 类 Json 是一个用于 Java 对象 和 Json 文本 相互转换的工具类. 安装 下载源码 git clone https://github.com/njdi/durian.git 编译源码 cd durian/ 切换至最新版本(Tag),如:0.4, git chec

  • Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    本文实例讲述了Java实现操作JSON的便捷工具类.分享给大家供大家参考,具体如下: 对于JSON数据格式的处理,自开发Java以来,已用过多种JSON的开源工具,用得最好,也用得最High的恐怕要属Google的Gson了. 特别为它写了一个工具类,放入常备工具中,方便使用.下面是为GSON 1.5版本重写的工具类. 依赖包: slf4j-api-1.6.0.jar slf4j-log4j12-1.6.0.jar log4j-1.2.15.jar gson-1.5.jar /** * Copy

  • java实现的日期时间转换工具类完整示例

    本文实例讲述了java实现的日期时间转换工具类.分享给大家供大家参考,具体如下: 最基础的东西,总结一下,下次用的时候就方便一些了.废话不多说,直接贴代码: package com.incar.base.util; import com.incar.base.exception.BaseRuntimeException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDat

  • Java实现的进制转换工具类完整示例

    本文实例讲述了Java实现的进制转换工具类.分享给大家供大家参考,具体如下: import java.nio.charset.Charset; /** * 十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:A~F即10~15).<br> * 例如十进制数57,在二进制写作111001,在16进制写作39.<br> * 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的

  • java实体对象与Map之间的转换工具类代码实例

    这篇文章主要介绍了java实体对象与Map之间的转换工具类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Map接口中键和值一一映射. 可以通过键来获取值. 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值. 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常. 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常

  • 使用spring boot开发时java对象和Json对象转换的问题

    将java对象转换为json对象,市面上有很多第三方jar包,如下: jackson(最常用) <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind&l

  • java对象和json的来回转换知识点总结

    为了是java中的对象便于理解,我们可以使用一款比较好用的数据格式,在数据解析的时候也会经常用到,它就是JSON.在这里我们转换对象和字符串时,需要java先变成json对象的模式.为了防止有人对JSON数组和对象的概念混淆,我们会先对这两个概念理解,然后带来java对象和json的来回转换的方法. 1.JSON数组和对象的区别 JSONArray是将数据转换为数组形式: strArray:[{"address":"北京市西城区","age":&

  • 基于Java实现进制转换工具类的示例代码

    目录 背景 原理 十进制A转换为N进制R N进制R转换为十进制A 应用 延伸 背景 最近有个发送短信的功能,需要在短信中带有详情链接,链接中带有对应信息且要有校验功能,然而短信是按字数收费的,所以链接要尽可能的短.链接中带有数字类型参数,就想到通过低进制转高进制可以减少参数长度. 原理 低进制转换到高进制的时候可能会减少位数,例如二进制是满二进一,十进制是满十进一. 二进制:101001101 转换为对应的四进制为:11031 转换为对应的八进制为:515 转换为对应的十进制为:333 转换为对

  • GSON实现Java对象与JSON格式对象相互转换的完全教程

    Gson是一个Java库,用来实现Json和Java对象之间的相互转换.Gson是一个托管在https://github.com/google/gson的开源项目. Gson中主要的类是Gson,也可以使用类GsonBuilder在创建Gson对象的同时设置一些选项. Gson对象在处理Json时不会保存任何状态,所以使用者能够很轻松的对同一个Gson对象进行多次序列化.反序列化等操作. 示例:基本使用 //Serialization Gson gson = new Gson(); gson.t

随机推荐