在访问嵌套json时遇到问题。类似的东西:
[
{
key-value,
key-value
},
{
key-value,
key-value
},
{
key-value,
key-value
}
]
效果很好,但当我尝试时:
{
"alfa":{
"id":"foo",
"product":{
"id":"foo1",
"price":"foo2"
}
},
"beta":{
"id":"foo",
"product":{
"id":"foo1",
"price":"foo2"
}
}
}
我得到一个错误:
com.fasterxml.jackson.databind.exc.mismatchedinputexception:无法反序列化'java.util.arraylist<。。。
我当然改变了班级结构:
public class Alphabet{
private Purchase purchase;
...
public class Purchase{
private String id;
private Product product;
...
public class Product {
private String id;
private String price;
...
阅读:
ObjectMapper mapper = new ObjectMapper();
InputStream inputStream = new FileInputStream(new File("src/main/json/file.json"));
TypeReference<List<Alphabet>> typeReference = new TypeReference<List<Alphabet>>() {};
List<Alphabet> alphabet= mapper.readValue(inputStream, typeReference);
System.out.println(alphabet);
请问怎么了?
2条答案
按热度按时间2q5ifsrm1#
您尝试读取的json结构似乎不是
List<Alphabet>
,但是Map<String, Purchase>
.ruarlubt2#
您的第二个json与对象列表不同。第二个json看起来像有两个主要对象,如果您需要下面这样的类的话。
但这不是一个好的做法。用作第一个类似josn的对象列表。