【问题标题】:how to deserialize a json list to java object with jackson如何使用jackson将json列表反序列化为java对象
【发布时间】:2016-04-09 06:11:49
【问题描述】:

尝试将 JSON 字符串映射到 java 类,但它不起作用。使用杰克逊库,这是我的代码。 输入json:

{
   "code":"1",
   "message":"1",
   "result":[
      {
         "serviceid":"13",
         "servicename":"service1",
         "price":"78000",
         "amount":"2048"
      },
      {
         "serviceid":"14",
         "servicename":"service2",
         "price":"118000",
         "amount":"3072"
      }
   ]
}

java 类:

public class serviceList
{
    public int serviceid;
    public String servicename;
    public double price;
    public int amount;
}

public class serviceList_result
{
    public String code;
    public String message;
    public ArrayList<serviceList> result;

    public serviceList_result()
    {
        result = new ArrayList<serviceList>();
    }

}

我正在使用此代码进行映射

serviceList_result srv= mapper.readValue(jsonInString, TypeFactory.defaultInstance().constructCollectionType(ArrayList.class,serviceList_result.class));

错误:

无法反序列化 java.util.ArrayList 的实例 START_OBJECT

我的代码有什么问题?

【问题讨论】:

    标签: java android json jackson


    【解决方案1】:

    你的代码中不需要这个:

    serviceList_result srv= mapper.readValue(jsonInString, TypeFactory.defaultInstance().constructCollectionType(ArrayList.class,serviceList_result.class));
    

    你是说你想反序列化集合,即[ ... ]

    相反,只需这样做:

    serviceList_result srv= mapper.readValue(json, serviceList_result.class);
    

    jackson 库将找出如何从类定义中创建serviceList_result 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 2019-12-01
      相关资源
      最近更新 更多