Джексон десериализует массив объектов в pojo - PullRequest
0 голосов
/ 04 июля 2018

Итак, у меня есть этот файл 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, чтобы мой класс содержал массив результатов?

1 Ответ

0 голосов
/ 04 июля 2018

Ваш вопрос программы неправильный. Есть много проблем с вашим кодом. Пожалуйста, используйте ниже образец:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...