Java Jackson将对象数组反序列化到pojo

Java Jackson将对象数组反序列化到pojo,java,arrays,json,jackson,Java,Arrays,Json,Jackson,所以我有这个JSON文件 { "results":[ "result":{}, "result":{} ] } 我希望将其反序列化为包含结果对象数组的java对象 public class Foo(){ @JsonProperty("results") private Result[] results; public void setResults(Result[] results){

所以我有这个JSON文件

{
      "results":[
          "result":{},
          "result":{}
         ]
}
我希望将其反序列化为包含结果对象数组的java对象

public class Foo(){
     @JsonProperty("results")
     private Result[] results;

     public void setResults(Result[] results){
           this.results = results;
     }

     public Result[] getResults(){
         return this.results;
     }
}

public class JsonToObject(){
     ObjectMapper mp = new ObjectMapper();

     public void createObject(String jsonFile){
     Foo bar = mp.readValue(jsonFile, Foo.Class)
     }
}
我的问题是,我一直在得到反序列化问题,因为我还没有定义“结果”

我可以绕过这个问题的一种方法是将
result
作为result中的类变量,但这样做似乎很愚蠢,而且可能会导致重新序列化的问题


如何转换JSON以使我的类包含结果数组?

您的问题程序是错误的。你的代码有很多问题。请使用以下样本:

public class Foo {

    @JsonProperty("results")
    private Result[] results;

    public Foo() {
    }

    public Result[] getResults() {
        return results;
    }

    public void setResults(Result[] results) {
        this.results = results;
    }
}

public class Result {
    private String name;

    public Result() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public static void main(String[] args) throws IOException {
    ObjectMapper mp = new ObjectMapper();
    String content = "{\"results\":[{\"name\":\"apple\"},{\"name\":\"lemon\"}]}";
    Foo bar = mp.readValue(content, Foo.class);
}

我投了反对票,原因有很多。第一:这甚至不是一个有效的JSON。第二:结果是什么?第三:您的代码无法编译。您应该创建一个json,这不是完整的json,因为完整的json大约是3mb,结果是什么并不重要,因为它包含在一个可以反序列化的类中。是的,它不编译,因为它只是我的代码的一个示例。我有一个包含另一个对象数组的类。我认为@CassioMazzochiMolin的关注点和问题与解决您的问题相关。您提供的json示例是一个无效的反序列化(读起来好像您的
Result
类有一个名为“Result”的字段。此外,数组的元素应该是有效的json对象)。但这不符合我的要求。我遇到的问题是当我尝试反序列化包含结果对象数组的json文件时。例如String content=“{\'results\”:[\'result\”:{\'name\':\'apple\'},{\'name\':\'lemon\'},\'result\':{\'name\':'apple\'},{\'name\':'lemon\'}