【问题标题】:How to parse jsonarray using jackson annotations如何使用杰克逊注解解析 jsonarray
【发布时间】:2014-11-14 15:30:10
【问题描述】:

问题是我无法解析简单的 json 数组

jsonarray的结构是:

   [{
    "id": 1,
    "name": "name_1"
   }, {
    "id": 2,
    "name": "name_2"
   }]

我尝试过以下代码:

@JsonIgnoreProperties(ignoreUnknown = true)
public class MyObject 
{
    public String id;
    public String name;
}

public class RouteServerResponse extends ArrayList<MyObject>
{
    public RouteServerResponse()
    {

    }
}

请求数据的方法是:

final JacksonRequest<RouteServerResponse> request = new JacksonRequest<RouteServerResponse>(Request.Method.GET, url, params,
      new JacksonRequestListener<RouteServerResponse>()
                {
                    @Override
                    public void onResponse(RouteServerResponse r, int statusCode, VolleyError error)
                    {
                        if (c != null)
                            c.onResponse(r, statusCode, error);
                    }

                    @Override
                    public JavaType getReturnType()
                    {
                        return SimpleType.construct(RouteServerResponse.class);
                    }
                });

我在 logcat 中收到此错误

11-14 19:06:08.708  27593-28098/ru.youroute E/Volley﹕ [3991] NetworkDispatcher.run: Unhandled exception java.lang.IllegalArgumentException: Can not construct SimpleType for a Collection (class: ru.youroute.model.serverresponse.impl.RouteServerResponse)
    java.lang.IllegalArgumentException: Can not construct SimpleType for a Collection (class: ru.youroute.model.serverresponse.impl.RouteServerResponse)

【问题讨论】:

    标签: android json annotations jackson arrays


    【解决方案1】:

    Jackson's documentation:

    简单类型被定义为除了公认的类型之外的任何类型 容器类型(数组、集合、地图)

    听起来你想要CollectionType

    【讨论】:

    • @bakriOnFire 我用过这样的东西:CollectionType.construct(ArrayList.class, SimpleType.construct(Committee.class));
    猜你喜欢
    • 2014-08-22
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2020-10-16
    • 2020-01-29
    • 2018-08-25
    相关资源
    最近更新 更多