- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JDK 1.6、Jackson 2.0.5、Spring 3.0.3 并使用 jackson 注释来序列化和反序列化 json 响应。
public class MyDate extends java.sql.Date{
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy");
private String dateString;
@JsonCreator
public MyDate(@JsonProperty("dateString") String date){
super(simpleDateFormat.parse(date).getTime());
dateString = date;
}
public String getDateString(){
return dateString;
}
private final setDateString(String date){
// .....
}
}
我收到类似 1417977000000 的 json 响应消息,但它应该类似于 12/08/2014。我还需要写其他东西吗?
我试着关注 Jackson wiki page文章。
编辑:
在与@Sotirios Delimanolis 的讨论的基础上,我在 getter 方法上尝试了 JsonValue 注释,它成功了。
@JsonValue
public String getDateString(){
return dateString;
}
最佳答案
您的类型是 java.sql.Date
,这是一个 java.util.Date
,被认为是 Jackson 的特殊类型。默认情况下,它会将日期(java.util.Date
类型的实例)写入它们的时间戳。你可以禁用它
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
或您的 Jackson 版本的相应配置。
然而,这会给你类似的东西
"2014-12-08T08:00:00.000+0000"
它不会使用您的SimpleDateFormat
。你可以像这样用 ObjectMapper
注册一个 DateFormat
objectMapper.setDateFormat(new SimpleDateFormat("MM/dd/yyyy"));
最好的解决方案是使用组合而不是继承。不要直接或间接扩展 java.util.Date
。
关于java - 使用@JsonCreator 和@JsonProperty 未按预期生成 Json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27386883/
我有一个 POJO,例如 public class Category { public Collection items; public static class Item {
我正在使用 Jackson将 JSON 字符串反序列化为枚举。 public enum RoomType { SHARED("shared"), PRIVATE("private");
初始问题 是否可以有多个 @JsonCreator 方法,并让 jackson 根据方法定义检测应该使用哪一个? @JsonCreator public static StateOfComm fact
我正在尝试使用 Jackson 将一些 JSON 转换为一个类的实例,该类包含一些简单的字符串和另一个我正在使用 @JsonCreator 的类。看来 Jackson 无法创建其他类的实例。 问题是当
我正在尝试使用 jackson 将 json 反序列化为枚举。如果工厂方法只有一个参数,它工作正常。一旦我们添加更多参数,它就会停止工作。 这是我试过的代码示例。 public enum Test {
我正在尝试使用 Jackson 1.9.10 反序列化此类的一个实例: public class Person { @JsonCreator public Person(@JsonProperty("
我在使 RestEasy (3.0.10.Final) 将路径参数解析为枚举值时遇到问题。 有了枚举定义... package com.stines; import com.fasterxml.jac
我想使用主要构造函数用 @JsonCreator 进行注释,如下所示: // error @JsonCreator class User( @JsonProperty("username")
我在构造函数的参数上使用Jackson @JsonProperty(name) 注释,我遇到的每个文档都指出我们必须使用@JsonCreator 注释和@JsonProperty 才能正常工作,但即使
我很想用这个: @Getter @ToString @RequiredArgsConstructor(onConstructor_ = {@JsonCreator(mode =
我正在编写一个简单的 REST API,它将在给定主机名上安装/启动/停止代理。作为 API 的一部分,我正在创建一个 AgentInstruction 实例(代码如下)。由于某种原因,应用程序抛出
当我在嵌套字段上使用@JsonUnwrapped时: public class Person{ private int id; @JsonUnwrapped private F
我正在使用带有 JavaConfig 和 Jackson 2.4.3 的 Spring 4.1.1。 我的 Controller 看起来像这样: @RestController public inte
Jackson 似乎使用反射将附加属性直接写入字段,即使 @JsonCreator使用了构造函数,该字段标记为 final . 例子: public class Test { static c
我有以下实体,我将其用作对 Controller 的请求之一的目标 POJO: Entity @Table(name="user_account_entity") @JsonIgnorePropert
我正在使用 Jackson 序列化/反序列化不可变的 POJO。因为 POJO 是不可变的,所以我这样定义它们: class Foo { private final String bar;
我目前正在使用 Jackson 1.4.2 并尝试反序列化从我们的 UI 传回 Java Controller (Servlet) 的 code 值(类型信息的唯一标识符)。 有多种类型(例如 ABC
我有一个 Value 类,它包含一个值: public class Value { protected final Object value; @JsonValue publi
我有一些运行良好的旧代码,但现在我想在域对象中使用@JsonCreator,并且我能够重构所有内容,但我现在陷入了一个问题。在一种情况下,我的 Json 结构如下: [{ "name" :
我有一个包含很多字段的可序列化对象,其中一些是强制性的,其他是可选的。为了使这个对象易于使用,我尝试了 Builder Pattern with a Twist 。这很有效,但是生成的某些 Build
我是一名优秀的程序员,十分优秀!