「JSON对象互转工具」JSON转对象、对象转JSON

这篇具有很好参考价值的文章主要介绍了「JSON对象互转工具」JSON转对象、对象转JSON。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Fastjson

Fastjson 是一款高性能的 JSON 解析库,提供了丰富而强大的方法来处理 JSON 数据。下面是一些常用的 Fastjson, 方法的详解:

Fastjson 的 Maven 依赖

<dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.76</version>
    </dependency>
</dependencies>
  1. toJSONString(Object object):将 Java 对象转换为 JSON 字符串。
String jsonString = JSON.toJSONString(myObject);
  1. parseObject(String text, TypeReference<T> type):将 JSON 字符串解析为指定类型的对象
MyObject myObject = JSON.parseObject(jsonString, new TypeReference<MyObject>() {});
  1. parseArray(String text, Class<T> clazz):将 JSON 数组字符串解析为指定类型的 List 集合
List<MyObject> myList = JSON.parseArray(jsonArrayString, MyObject.class);
  1. toJSONBytes(Object object, SerializerFeature... features):将 Java 对象转换为 JSON 字节数组。
byte[] jsonBytes = JSON.toJSONBytes(myObject, SerializerFeature.WriteClassName);
  1. parseObject(byte[] bytes, Class<T> clazz, Feature... features):将 JSON 字节数组解析为指定类型的对象。
MyObject myObject = JSON.parseObject(jsonBytes, MyObject.class);
  1. toJSONString(Object object, SerializeConfig config, SerializerFeature... features):使用指定的配置和特性将 Java 对象转换为 JSON 字符串。
SerializeConfig config = new SerializeConfig();
String jsonString = JSON.toJSONString(myObject, config, SerializerFeature.WriteMapNullValue);
  1. toJSONStringWithDateFormat(Object object, String dateFormat, SerializerFeature... features):将 Java 对象转换为 JSON 字符串,并指定日期格式。
String jsonString = JSON.toJSONStringWithDateFormat(myObject, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat);
  1. parseObject(String text, Class<T> clazz, Feature... features):将 JSON 字符串解析为指定类型的对象,同时可以设置解析时使用的特性。
MyObject myObject = JSON.parseObject(jsonString, MyObject.class, Feature.IgnoreNotMatch);
  1. toJSONObject(Map<?, ?> map):将 Map 对象转换为 JSON 对象。
Map<String, Object> map = new HashMap<>();
JSONObject jsonObject = (JSONObject) JSON.toJSON(map);
  1. toJavaObject(JSON json, Class<T> clazz):将 JSON 对象转换为 Java 对象。
JSONObject jsonObject = JSON.parseObject(jsonString);
MyObject myObject = JSON.toJavaObject(jsonObject, MyObject.class);

以上是一些 Fastjson 中常用的方法,Fastjson 提供了更多的功能和方法,可根据实际需求选择适合的方法来进行使用。

二、ObjectMapper

ObjectMapper 是一个Java库,广泛用于将Java对象与JSON之间进行序列化和反序列化。它提供了一组强大而灵活的方法来处理JSON数据和Java对象之间的转换。 以下是一些常用的ObjectMapper方法:

Jackson ObjectMapper的 Maven 依赖

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.4</version>
    </dependency>
</dependencies>
  1. writeValueAsString(Object value):将Java对象转换为JSON字符串表示形式。
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(myObject);
  1. writeValue(File file, Object value):将Java对象转换为JSON并写入到指定文件中。
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(new File("data.json"), myObject);
  1. readValue(String json, Class<T> valueType):将JSON字符串转换为Java对象。
ObjectMapper objectMapper = new ObjectMapper();
MyObject myObject = objectMapper.readValue(jsonString, MyObject.class);
  1. readValue(File file, Class<T> valueType):从文件中读取JSON并将其转换为Java对象。
ObjectMapper objectMapper = new ObjectMapper();
MyObject myObject = objectMapper.readValue(new File("data.json"), MyObject.class);
  1. configure(DeserializationFeature feature, boolean state):配置反序列化特性,例如忽略未知的属性。
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  1. configure(SerializationFeature feature, boolean state):配置序列化特性,例如美化输出。
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
  1. registerModule(Module module):注册自定义模块,例如Java 8日期时间模块。
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());

这只是ObjectMapper提供的一些常用方法,还有其他更多功能和方法可供使用。使用ObjectMapper可以轻松地将Java对象与JSON之间进行转换,方便在Java应用程序中处理JSON数据。

三、Gson

Gson 是 Google 提供的一个强大的JSON序列化/反序列化库,提供了丰富的方法来处理对象与JSON之间的转换。以下是 Gson中一些常用的方法:

Gson的 Maven 依赖

<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.8</version>
    </dependency>
</dependencies>
  1. toJson(Object src):将对象转换为 JSON 字符串。
Gson gson = new Gson();
String jsonString = gson.toJson(myObject);
  1. fromJson(String json, Class<T> classOfT):将 JSON 字符串转换为指定类型的对象
Gson gson = new Gson();
MyObject myObject = gson.fromJson(jsonString, MyObject.class);
  1. fromJson(JsonElement json, Class<T> classOfT):将 JsonElement 对象(例如 JsonObject 或者 JsonArray)转换为指定类型的对象。
Gson gson = new Gson();
JsonElement jsonElement = gson.fromJson(jsonString, JsonElement.class);
MyObject myObject = gson.fromJson(jsonElement, MyObject.class);
  1. toJson(JsonElement jsonElement):将 JsonElement 对象转换为 JSON 字符串。
Gson gson = new Gson();
JsonElement jsonElement = gson.fromJson(jsonString, JsonElement.class);
String jsonString = gson.toJson(jsonElement);
  1. fromJson(Reader reader, Class<T> classOfT):从 Reader 对象中读取 JSON,并将其转换为指定类型的对象。
Gson gson = new Gson();
Reader reader = new FileReader("data.json");
MyObject myObject = gson.fromJson(reader, MyObject.class);
  1. toJson(Object src, Type typeOfSrc):将对象转换为 JSON 字符串,并指定类型。
Gson gson = new Gson();
Type type = new TypeToken<List<MyObject>>() {}.getType();
String jsonString = gson.toJson(myList, type);
  1. fromJson(String json, Type typeOfT):将 JSON 字符串转换为指定类型的对象,以及处理泛型类型。
Gson gson = new Gson();
Type type = new TypeToken<List<MyObject>>() {}.getType();
List<MyObject> myList = gson.fromJson(jsonString, type);
  1. toJsonTree(Object src):将对象转换为 JsonElement 对象。
Gson gson = new Gson();
JsonElement jsonElement = gson.toJsonTree(myObject);

这只是 Gson 中一些常用的方法,还有其他更多功能和方法可供使用。Gson 提供了灵活而强大的功能来处理对象与 JSON 之间的转换,根据需要选择适合您应用程序的方法进行使用。

四、总结

Fastjson、ObjectMapper 和 Gson 都是流行的 JSON 解析库,用于在 Java 中处理 JSON 数据。以下是对它们的总结:

  1. Fastjson

    • Fastjson 是一个高性能的 JSON 解析库,具有快速解析和序列化的特点。
    • 它支持将 Java 对象转换为 JSON 字符串,以及将 JSON 字符串转换为 Java 对象。
    • Fastjson 提供了丰富的功能和灵活的配置选项,可以满足各种复杂的 JSON 处理需求。
    • 它具有广泛的应用和活跃的社区支持,适用于对性能要求较高的场景。
  2. ObjectMapper(Jackson):

    • ObjectMapper 是 Jackson 库的核心类,提供了强大的 JSON 解析和生成功能。
    • 它可以将 Java 对象转换为 JSON 字符串,以及将 JSON 字符串转换为 Java 对象。
    • Jackson 是一个全面且功能丰富的库,提供了很多高级功能,如注解支持、树模型、数据绑定等。
    • 它在企业级应用和大规模项目中广泛使用,对复杂的 JSON 结构处理十分有效。
  3. Gson

    • Gson 是 Google 开发的一款简单易用但功能强大的 JSON 解析库。
    • 它可以将 Java 对象转换为 JSON 字符串,以及将 JSON 字符串转换为 Java 对象。
    • Gson 的设计目标是简洁易用,提供了简单的 API 和默认配置,减少了开发者的工作量。
    • Gson 具有良好的兼容性和稳定性,适合快速开发和小型项目。

总体而言,Fastjson 提供了极高的解析和序列化性能,适合对性能要求较高的场景。ObjectMapper(Jackson)是一个功能强大且全面的库,支持多种高级特性,适用于复杂的 JSON 处理需求。而 Gson 简单易用,适合快速开发和小型项目。根据实际需求和偏好,可以选择适合的库来处理 JSON 数据。

五、建议

建议使用FastJson的工具,因为ObjectMapper对于LocalDateTime的处理不是很优化,需要特殊的配置,直接使用MyObject myObject = JSON.parseObject(jsonString, new TypeReference<MyObject>() {});效果更换文章来源地址https://www.toymoban.com/news/detail-613173.html

到了这里,关于「JSON对象互转工具」JSON转对象、对象转JSON的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 对象 和 json 互转 四种方式 json-lib、Gson、FastJson、Jackson

    json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar, 对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如一个类里面会出

    2024年01月21日
    浏览(58)
  • xml和json互转工具类

    这里为了更全面的演示,所以嵌套三层 第三层: 第二层: 第三层: json转xml  xml转json:

    2024年02月10日
    浏览(44)
  • Java List对象集合转Json & Json转List对象集合

    使用了阿里巴巴的 fastjson  首先引入依赖 示例如下 输出结果:

    2024年02月15日
    浏览(57)
  • JSON对象转为Java类对象

    本文讲述两种方法,使JSON对象转为Java类对象。基于 FastJson1 对于以下的JSON对象: 假设以上的JSON对象已通过toJSONString()方法转为String,那么有两种方法可以将其转为Java类对象, 前提是已定义一个YourClass类,其成员变量可以容纳以上records内的各个字段, 两种转换方法如下:

    2024年02月10日
    浏览(62)
  • JAVA 对象转换为JSON

    转载:如何把java对象转换为json java对象怎么转成json_clghxq的技术博客_51CTO博客 1、Java对象列表转换为JSON对象数组,并转为字符串 JSONArray jsonArray = JSONArray.fromObject(list); String jsonArrayStr = jsonArray.toString(); 2、把Java对象转换成JSON对象,并转化为字符串 JSONObject jsonObject = JSONObject.

    2024年02月10日
    浏览(38)
  • Java入门-java对象与json之间的转换

    使用jackson实现java对象转为Json字符串 引入依赖 对象转json字符串 测试 使用Jackson对象完成转换工作。 json字符串转换对象 测试

    2024年02月22日
    浏览(48)
  • 【御控工业物联网】JAVA JSON结构转换、JSON结构重构、JSON结构互换(5):对象To对象——转换映射方式

    JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换,生成新的JSON对象或数组的过程。这种转换可以包括改变JSON数据的结构、提取特定字段、合并多个JSON数据,或者对数据进行计算和处理等操作。 在JSON结构转换中,常见的操作包括: 提取

    2024年04月27日
    浏览(40)
  • Java-json相关转换,JSONObject与实体类/map互转、List/List<map>和JSONArray互转、获取JSONObject中的key value、字符串String转换等

    博客背景是Java开发。json相关的转换、取值等在日常开发中经常使用,但有时候还是会忘记or遇到些奇奇怪怪的问题。以此记录,提醒自己~不定期更新~ 实体类和JSONObject互转 Map和JSONObject互转 String转JSONObject 实体类转JSON字符串时不过滤NULL空值 获取JSONObject中的key value List和

    2024年02月12日
    浏览(81)
  • JSON 与 Java 对象之间的转化

    在现在的日常开发中,不管前端还是后端,JSON 格式的数据是用得比较多的,甚至可以说无处不在。 接触最多的就是 POST 请求中传递的数据一般以 JSON 的格式放在请求体中,而且服务端各种 API 返回的数据,在响应体中也基本都是以 JSON 格式的数据进行返回的,这也是 RESTfu

    2024年01月17日
    浏览(47)
  • java中对象和JSON格式的转换

    JSON(javaScript Object Notation) 是 一种轻量级的数据交换格式 ,具有良好的可读性和可拓展性。 它采用键值对的方式表示数据,支持基本数据类型和复合数据类型。可用于描述结构化数据和非结构化数据。 结构 对象结构(无序): 无序的对象结构在不同语言中称法不同 对象(

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包