【问题标题】:FasterXML Jackson ObjectMapper for .Net MVC4 JSON POST Result Type ObjectsFasterXML Jackson ObjectMapper for .Net MVC4 JSON POST 结果类型对象
【发布时间】:2013-08-02 21:45:37
【问题描述】:

我正在与其他在 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;

对于 Jackson 和 Robospice 方面的专家......如果有更好的方法,请分享。

【问题讨论】:

    标签: android .net json jackson robospice


    【解决方案1】:

    RoboSpice 尚不支持使用 Jackson 解析 XML。它提供了一个使用 SimpleXMLSerializer 而不是 jackson 来解析 XML 的模块。

    你能指出你使用了哪些Jackson类吗,我很快会在RS中添加一个模块。

    【讨论】:

    • 不确定我是否理解...我确实将 RoboSpice 与 Spring Spice 请求一起使用...这是使用 Jackson 解析器,对吗?使用这样的代码: import com.octo.android.robospice.request.springandroid.SpringAndroidSpiceRequest; .... return getRestTemplate().postForObject( theURL, mObjectToPost.get_InnerObject(), OuterObject.class );
    • 当然,我知道 RS 课程。但是你能给出一个使用jackson xml解析器的链接吗?
    • Jackson 解析器的使用是 RoboSpice 设置的一部分...我们在 SpiceManager 的构建中为 Jackson2SpringAndroidSpiceService.class 配置。在 POJO 对象中,我们使用使用 com.fasterxml.jackson.annotation.* 类的注释。我们目前处于 Jackson-core-2.2.3 级别……更快的 Jackson 2.2.3 套罐子。 Jackson-annotations、Jackson-core 和 Jackson-databind。我们不直接使用 Jackson... RoboSpice 根据我们对 SpiceManager 的配置使用它。不确定这是否对您有帮助?
    • 很好@lepert,我找到了。实际上,让jackson xml的解析器与RS一起工作真正缺少的是它本身不适用于spring android。 jackson2 的 XML 解析器缺少 http 消息转换器。
    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    相关资源
    最近更新 更多