ObjectMapper 使用 com.jsoniter 库
ObjectMapper using com.jsoniter library
我有一个 Map<String, Object> map
,它是从一个简单的 JSON 字符串 {"field1":"val1", "field2":"val2", "isReal":true}
反序列化而来的。我正在尝试使用上述字段构造一个 Java 对象 MyObject
。
我可以像这样使用 com.fasterxml.jackson.databind.ObjectMapper
来做到这一点:
public static MyObject load(Map<String, Object> map) throws IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(new ObjectMapper().writeValueAsString(map), MyObject.class);
}
我想知道是否有人知道如何使用 com.jsoniter
库来做同样的事情?
我曾尝试使用 JsonIterator.deserialize
,但没有将 Map
作为输入。
我也在图书馆的网站上看到了ReflectionEncoderFactory
的用法,但是我没有完全理解如何使用它来构造一个对象MyObject
根据@Scary Wombat 的解释:
首先需要将 Map 转换回 JSON 字符串,然后将 JSON 字符串转换为对象:
public static MyObject load(Map<String, Object> map) throws IOException {
return JsonIterator.deserialize(JsonStream.serialize(map), MyObject.class);
}
JsonStream.serialize(map)
也是一样new ObjectMapper().writeValueAsString(map)
我有一个 Map<String, Object> map
,它是从一个简单的 JSON 字符串 {"field1":"val1", "field2":"val2", "isReal":true}
反序列化而来的。我正在尝试使用上述字段构造一个 Java 对象 MyObject
。
我可以像这样使用 com.fasterxml.jackson.databind.ObjectMapper
来做到这一点:
public static MyObject load(Map<String, Object> map) throws IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(new ObjectMapper().writeValueAsString(map), MyObject.class);
}
我想知道是否有人知道如何使用 com.jsoniter
库来做同样的事情?
我曾尝试使用 JsonIterator.deserialize
,但没有将 Map
作为输入。
我也在图书馆的网站上看到了ReflectionEncoderFactory
的用法,但是我没有完全理解如何使用它来构造一个对象MyObject
根据@Scary Wombat 的解释:
首先需要将 Map 转换回 JSON 字符串,然后将 JSON 字符串转换为对象:
public static MyObject load(Map<String, Object> map) throws IOException {
return JsonIterator.deserialize(JsonStream.serialize(map), MyObject.class);
}
JsonStream.serialize(map)
也是一样new ObjectMapper().writeValueAsString(map)