0
点赞
收藏
分享

微信扫一扫

MySQL数据库局域网连接

眼君 2023-07-28 阅读 11

JSON对象互转工具

一、Fastjson

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

二、ObjectMapper

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

三、Gson

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

四、总结

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

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

五、建议

建议使用FastJson的工具,因为ObjectMapper对于LocalDateTime的处理不是很优化,需要特殊的配置,直接使用MyObject myObject = JSON.parseObject(jsonString, new TypeReference<MyObject>() {});效果更换

举报

相关推荐

0 条评论