我有这个json字符串:
{
"startDate" : "2014-12-17T14:31:40Z",
"name" : "Izek",
"age" : 12
}
当我用Jackson将其转换为映射[字符串,对象]时,开始日期的类型是字符串,我如何告诉Jackson将其转换为日期时间类型?
我找到了一个方法。在反序列化方法中定义我自己的非类型化对象反序列化器,并扩展标准非类型化对象反序列化器:
if (currentToken == JsonToken.VALUE_STRING) {
if (_stringDeserializer != null) {
return _stringDeserializer.deserialize(jp, ctxt)
}
String text = jp.getText();
if (dateTimeFormatRegex.match(text) {
return toDateTimeObject(text);
} else {
return text;
}
}
return super.deserialize(jp, ctxt)
public DateTime toDateTimeObject(String text) {
dateTimeFormatter.parseDateTime(text)
}
您是否考虑过自定义映射反序列化器?您可以尝试解析其中的日期。如果事先不知道,您可能会在此处遇到性能问题。
您需要在对象映射器中显式设置数据格式。您可以将日期格式映射参考JSON Jackson以获取更多详细信息。或者,您可以将其作为http://java.dzone.com/articles/how-serialize-javautildate
问题内容: 我想创建一个地图,可以将其转换为json对象,例如 但是golang指定使用类型声明地图,因此我可以使用map [string] string或map [string] int。我如何创建上述的json对象? 注意:直到运行时或需要创建json对象时,我才知道需要哪些数据和/或类型。因此,我不能只创建像 问题答案: 您可以随时使用存储任何类型。如包装袋中的文件所述: 若要将JSON解组
问题内容: 我必须完成一个奇怪的特殊情况。其描述如下: 我必须设计一个地图,其中“ 键 ”始终为 字符串 类型。但是,其中一个键的“ 值 ”可以是 字符串或列表 (取决于特定键可以具有的值数。如果该特定键只有一个值,并且必须如果键包含许多值,则为列表)。如何完成这种情况? 例如:在映射中有2个键,分别是“名称”和“电话号码”。一个人只能有一个名字和多个电话号码。因此,此处的第一个键(即“名称”)的
redis 字符串类型
问题内容: 我正在使用AttributeConverter将MySQL JSON列转换为Object,如https://stackoverflow.com/a/31547965/1633272所述 将数据存储到MySQL中时,它工作正常,我可以在WorkBench中看到正确的值。 但是,当将该列返回给Java应用程序时,一个Unicode字符映射为3个字符。 这是一个示例,JSON字符串 “中”
在java 8中创建新代码后,我想清除声纳问题。 我的代码: 声纳说: Lambda应该替换为方法引用。方法/构造函数引用比使用lambda更紧凑和可读性,因此是首选。同样,空检查可以替换为对Object::isNull和Object::nonNull方法的引用。 我想要更改映射(arg-
问题内容: 我有一个JSON响应,我需要将对应的JSON字符串映射到特定的Response类,是否有任何工具或框架可以做到这一点。 响应类为: Json响应字符串为{“ 0”:{“ 0”:“ Rockey”,“ 1”:“ John”}} 我将Apache CXF Framework与Jettison一起使用,因为JSON Provider还使用JAXB将数据连接到低带宽客户端。 请注意,我要将数字