- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在应用程序的客户端序列化一个对象(来自 Enum ),并使用 jackson 在另一端(服务器端)将其反序列化为同一对象。我的客户端有这个枚举:
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@type")
public enum Request{
Signup,
Login
}
使用 jackson 的 @jsonTypeInfo 注释。
在服务器端,我这样做是为了反序列化对象:
ObjectMapper mapper = new ObjectMapper();
final JsonNode jsonNode;
jsonNode = mapper.readTree(json); //json is the return String from the convertObjectToJson(Request.Signup);
//i get the error on this line
String type = jsonNode.get("@type").asText();
正如我在上面的代码中评论的那样,我在 jsonNode.get("@type").asText()
上得到 NullException,而 json 是:[ "Request",“注册”]
这是序列化对象的函数:
public static String convertObjectToJson(Object object) throws IOException {
ObjectWriter objectWriter = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = objectWriter.writeValueAsString(object);
return json;
}
问题出在哪里?
最佳答案
Jackson 默认情况下会将 java 枚举表示为简单字符串,因此您无法反序列化该对象
看看这里,它可能会有所帮助:http://www.baeldung.com/jackson-serialize-enums
关于java - 无法使用 jackson @JsonTypeInfo 注释将对象反序列化为其原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34096545/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!