【问题标题】:Robospice and Jackson annotations seems to be ignoredRobospice 和 Jackson 注释似乎被忽略了
【发布时间】:2015-06-08 01:20:19
【问题描述】:

我对@9​​87654321@ 有疑问。
我正在尝试创建简单的项目,并从我的 api 获取数据。
但是当杰克逊映射对象时,我得到了一个例外。

>    Caused by:
> com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
> Unrecognized field "id" (class
> com.crosp.solutions.malibushop.rest.model.SlideshowImage), not marked
> as ignorable (6 known properties: "desiredHeight", "redirectUrl",
> "imageUrl", "title", "desiredWidth", "slideId"])

我的 JSON 格式如下。

[{"id":"121","source":"some url","title":"Hello"},{"id":"120","source":"some url","title":"Girls"},{"id":"119","source":"some url","title":"Girl2"}]

我的 POJO

/**
 * Created by crosp on 6/8/15.
 */
@JsonIgnoreProperties(ignoreUnknown=true)
public class SlideshowImage {
    private String mImageUrl;
    private String mRedirectUrl;
    private String mTitle;
    private int mSlideId;
    private int mDesiredHeight;
    private int mDesiredWidth;

    public int getDesiredWidth() {
        return mDesiredWidth;
    }

    public void setDesiredWidth(int desiredWidth) {
        mDesiredWidth = desiredWidth;
    }

    public int getDesiredHeight() {
        return mDesiredHeight;
    }

    public void setDesiredHeight(int desiredHeight) {
        mDesiredHeight = desiredHeight;
    }

    public int getSlideId() {
        return mSlideId;
    }
    @JsonProperty("id")
    public void setSlideId(int slideId) {
        mSlideId = slideId;
    }

    public String getTitle() {
        return mTitle;
    }
    @JsonProperty("title")
    public void setTitle(String title) {
        mTitle = title;
    }

    public String getRedirectUrl() {
        return mRedirectUrl;
    }

    public void setRedirectUrl(String redirectUrl) {
        mRedirectUrl = redirectUrl;
    }

    public String getImageUrl() {
        return mImageUrl;
    }
    @JsonProperty("source")
    public void setImageUrl(String imageUrl) {
        mImageUrl = imageUrl;
    }
    @SuppressWarnings("serial")
    public static class List extends ArrayList<SlideshowImage> {

    }

}

如您所见,存在忽略未知属性的注释,但对象映射器未使用该注释。还有一些注释可以将我的 POJO 对象字段映射到 json 中的不同名称,但这仍然没有影响。
似乎杰克逊注释被忽略了。

如果名称字段与响应完全相同 - 一切正常。

服务

public class RestRetrofitSpiceService extends RetrofitJackson2SpiceService {
    private static final String API_SERVER_BASE_URL = "url api";
    @Override
    protected String getServerUrl() {
        return API_SERVER_BASE_URL;
    }

}

我的错在哪里?

【问题讨论】:

    标签: java android json jackson robospice


    【解决方案1】:

    问题已解决。

    存在依赖冲突,因为所有具有组 id 的库

    org.codehaus.jackson

    已移至新网址。

    com.fasterxml.jackson

    所以只需从构建文件中删除所有依赖项 org.codehaus.jackson 并改用 com.fasterxml.jackson

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-28
      • 2016-09-30
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 2017-12-05
      • 2012-03-08
      相关资源
      最近更新 更多