У меня есть строка 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);




У вас должно быть то же имя, когда вы конвертируете в Deneme
Изменять,
private List<JsonObject> matches;
К,
private List<JsonObject> games;
Я получаю сообщение об ошибке: Несовместимые типы. Требуется Deneme, но «fromjson», но выведенный для T. Нет экземпляров переменных типа.
С вашей текущей структурой вы можете использовать что-то вроде:
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.
что получится, вставьте полный код конвертации