Как использовать GSON для преобразования данных JSON в Java-объект? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть строка json.Я хочу преобразовать его в объект Java.Мой класс сущности Deneme.java.

Result переменная хранит json строка.Как я могу сделать этот процесс?

Я получаю сообщение об ошибке: Expected BEGIN_OBJECT but was BEGIN_ARRAY

Данные, поступающие с сервера,

 {"games":
       [   
            {"game":"Football","probability":0.74656546},
            {"game":"Football","probability":0.23432424},
            {"game":"Football","probability":0.2342342343}
       ]
 }

Deneme.java,


import com.google.gson.JsonObject;
import org.json.JSONArray;

import java.util.List;

public class Deneme {

    private List<JsonObject> matches;

    public List<JsonObject> getMatches() {
        return matches;
    }

    public void setMatches(List<JsonObject> matches) {
        this.matches = matches;
    }
}

Мой код:

Gson gson = new Gson();
Deneme obj = gson.fromJson(result, Deneme.class);

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

С вашей текущей структурой вы можете использовать что-то вроде:

    public class Deneme {

        private List<JsonObject> games;

        public List<JsonObject> getMatches() {
            return games;
        }

        public void setMatches(List<JsonObject> games) {
            this.games = games;
        }
    }

    public static void main(String[] args) {

        Deneme deneme = new Gson().fromJson(json, Deneme.class);

        deneme.getMatches().forEach(System.out::println);
    }

Вы должны изменить private List<JsonObject> matches на private List<JsonObject> games.

Вывод:

{"game":"Football","probability":0.74656546}
{"game":"Football","probability":0.23432424}
{"game":"Football","probability":0.2342342343}

Я думаю, что в вашем случае было бы лучше создать класс Game и сохранить список Game объектов внутри вашего Deneme класса, потому что теперь вы просто храните JsonObject.

0 голосов
/ 19 апреля 2019

Вам необходимо иметь такое же имя при конвертации в Deneme

Изменение

private List<JsonObject> matches;

К

private List<JsonObject> games;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...