gpt4 book ai didi

java - 如何使用 Jackson 将 json 列表反序列化为 java 对象

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:08 24 4
gpt4 key购买 nike

尝试将 JSON 字符串映射到 java 类,但它不起作用。使用 jackson 库,这是我的代码。输入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));

错误:

Can not deserialize instance of java.util.ArrayList out of START_OBJECT

我的代码有什么问题吗?

最佳答案

您的代码中不需要这样做:

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 对象。

关于java - 如何使用 Jackson 将 json 列表反序列化为 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com