我正在为其他在 Java 客户端和 .Net MVC4 的 Web 服务之间工作并使用 RoboSpice 和 FasterXML Jackson 框架的人分享这个。我在 stackoverflow 上找不到关于如何设置 JSON POJO 类以正确映射 POST 结果对象的良好信息。对于 POST 操作,RESULT JSON 带有来自 .Net Web 服务的结构:
{"ClassName":{"attribute_one":1,""attribute_two":1,"....}}
我不知道如何让 FastXml Jackson ObjectMapper readValue 解析工作。解析后我得到一个空的结果对象,所有属性都设置为 null 或默认值......,或者如果我关闭了 JsonIgnoreProperties,则类名的属性名称无效。
以下 POJO 对象定义终于对我有用。它有一个与 Result 中的 ClassName 匹配的外部类,然后有一个用于将 Single Result Object 映射到 Java Class Object 的内部静态类:
公共类 ClassNameOuter {
@JsonProperty("ClassName")
public ClassName _ClassName;
public ClassName get_ClassName() {
return _ClassName;
}
public void set_ClassName(ClassName _ClassName) {
this._ClassName = _ClassName;
}
@JsonIgnoreProperties(ignoreUnknown=true)
public static class ClassName {
@JsonProperty("attribute_one")
public long attribute_one;
@JsonProperty("attribute_two")
public long attribute_two;
对于杰克逊和 Robospice 的专家……如果有更好的方法,请分享。