Java中的JSON反序列化错误
我正在尝试反序列化我从eBay API获得的一些JSON,但我得到了错误:Java中的JSON反序列化错误,java,json,jackson,Java,Json,Jackson,我正在尝试反序列化我从eBay API获得的一些JSON,但我得到了错误:com.fasterxml.jackson.databind.JsonMappingException:无法反序列化START\u数组令牌中的java.lang.String实例 返回的JSON具有多个级别。e、 g {“searchResult”:[{“@count”:“100”,“item”:[{“itemId”:[“28149299859”],“title”:[“松下Lumix TZ20数码相机状况良好”],…等 这
com.fasterxml.jackson.databind.JsonMappingException:无法反序列化START\u数组令牌中的java.lang.String实例
返回的JSON具有多个级别。e、 g
{“searchResult”:[{“@count”:“100”,“item”:[{“itemId”:[“28149299859”],“title”:[“松下Lumix TZ20数码相机状况良好”],…
等
这适用于CompletedListing
中名为itemId
的属性(类定义如下)
我使用以下行调用此方法:
CompletedListingContainer listing = mapper.readValue(new File("C:\\resource\\jsonresult.txt"), CompletedListingContainer.class);`
这是我的课
CompletedListingContainer
public class CompletedListingContainer {
private ArrayList<CompletedListing> item;
private ArrayList<SearchResult> searchResult;
private List<String> paginationOutput;
@JsonIgnore
public List<String> getPaginationOutput() {
return paginationOutput;
}
public ArrayList<SearchResult> getSearchResult() {
return searchResult;
}
public ArrayList<CompletedListing> getItem() {
return item;
}
}
非常感谢您的帮助。如果您需要更多信息,请告诉我。将
私有数组列表项
放入搜索结果
类中,并将其从CompletedListingContainer
查看您的json文件结构:
{
"searchResult":[
{
"count":"100",
"item":[
{"itemId":["281492499859"]...
},
....
}
尝试从json生成Java类
{“itemId”:[“28149299859”]
表示您的CompletedListing。itemId
属性应该是列表或数组。这并没有解决问题,但我可以看出在CompletedListingContainer
类中使用它是错误的。谢谢,这就是问题所在。我没有意识到它需要是列表
@JamesFox很高兴提供帮助,请注意同样的问题用于标题
是的,我正在更改所有属性,因为我有更多没有添加到问题中的属性。
public class CompletedListing {
@JsonProperty("itemId")
private String itemId;
private String title;
@JsonProperty("itemId")
public String getItemId() {
return itemId;
}
@JsonProperty("title")
public String getTitle() {
return title;
}
}
{
"searchResult":[
{
"count":"100",
"item":[
{"itemId":["281492499859"]...
},
....
}