Java 将JSON作为对象列表读取-Jackson
我有一个Json字符串,如下所示Java 将JSON作为对象列表读取-Jackson,java,json,jackson,Java,Json,Jackson,我有一个Json字符串,如下所示 { "EngineData": [ { "make": "Toyota", "transmission": "Manual", "fuel": "Petrol" }, { "make": "GMC",
{
"EngineData": [
{
"make": "Toyota",
"transmission": "Manual",
"fuel": "Petrol"
},
{
"make": "GMC",
"transmission": "Auto",
"fuel": "Petrol"
},
{
"make": "Honda",
"transmission": "Manual",
"fuel": "Petrol"
}
]
}
@JsonIgnoreProperties(ignoreUnknown = true)
public class EngineData implements Serializable {
@JsonProperty("make")
private String make;
@JsonProperty("transmission")
private String transmission;
@JsonProperty("fuel")
private String fuel;
//getters and setters
}
我有如下定义的POJO
{
"EngineData": [
{
"make": "Toyota",
"transmission": "Manual",
"fuel": "Petrol"
},
{
"make": "GMC",
"transmission": "Auto",
"fuel": "Petrol"
},
{
"make": "Honda",
"transmission": "Manual",
"fuel": "Petrol"
}
]
}
@JsonIgnoreProperties(ignoreUnknown = true)
public class EngineData implements Serializable {
@JsonProperty("make")
private String make;
@JsonProperty("transmission")
private String transmission;
@JsonProperty("fuel")
private String fuel;
//getters and setters
}
我想把它读到List
我写了以下内容,但它没有将字符串读入EngineData列表
List<EngineData> engineDataList =null;
ObjectMapper mapper = new ObjectMapper();
engineDataList = mapper.readValue(myJsonString, new TypeReference<List<EngineData>>() {
});
List engineDataList=null;
ObjectMapper mapper=新的ObjectMapper();
engineDataList=mapper.readValue(myJsonString,新类型引用(){
});
不确定这有什么问题,您的JSON对应一个对象,例如:
class CustomObject {
List<EngineData> EngineData;
//...
}
如果您被迫使用这个JSON,我认为您需要编写一个自定义反序列化程序。cf.您的JSON对应一个对象,例如:
class CustomObject {
List<EngineData> EngineData;
//...
}
如果您被迫使用这个JSON,我认为您需要编写一个自定义反序列化程序。cf.对象无法映射到列表 有关映射给定json的信息,请参阅:
public class EngineDataList {
@JsonProperty("EngineData")
List<EngineData> EngineData;
}
EngineDataList engineDataList =null;
ObjectMapper mapper = new ObjectMapper();
engineDataList = mapper.readValue(myJsonString, new TypeReference<EngineDataList>() {});
公共类EngineDataList{
@JsonProperty(“EngineData”)
列出引擎数据;
}
EngineDataList EngineDataList=null;
ObjectMapper mapper=新的ObjectMapper();
engineDataList=mapper.readValue(myJsonString,newTypeReference(){});
对象无法映射到列表
有关映射给定json的信息,请参阅:
public class EngineDataList {
@JsonProperty("EngineData")
List<EngineData> EngineData;
}
EngineDataList engineDataList =null;
ObjectMapper mapper = new ObjectMapper();
engineDataList = mapper.readValue(myJsonString, new TypeReference<EngineDataList>() {});
公共类EngineDataList{
@JsonProperty(“EngineData”)
列出引擎数据;
}
EngineDataList EngineDataList=null;
ObjectMapper mapper=新的ObjectMapper();
engineDataList=mapper.readValue(myJsonString,newTypeReference(){});