Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JSON作为对象列表读取-Jackson_Java_Json_Jackson - Fatal编程技术网

Java 将JSON作为对象列表读取-Jackson

Java 将JSON作为对象列表读取-Jackson,java,json,jackson,Java,Json,Jackson,我有一个Json字符串,如下所示 { "EngineData": [ { "make": "Toyota", "transmission": "Manual", "fuel": "Petrol" }, { "make": "GMC",

我有一个Json字符串,如下所示

{
  "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(){});