vitya_brodov
@vitya_brodov
Java dev

Как считать данные из json файла и ввести на экран?

Здравствуйте!
есть json-файл
data.json

с которого я пытаюсь считать данные, но компилятор говорит что "я ожидал чего то другого, а ты суешь мне хлам"
что не так с мои кодом и как правильно делать это?
(использование gson обязателен )
мой код:
public void readKey(){
        try {
            BufferedReader reader = new BufferedReader(new FileReader("src/hw26/data.json"));
           Data data = gson.fromJson(reader, Data.class);
        }catch (IOException er){
            er.printStackTrace();
        }

    }


мой json:
[
  {"id": "1", "value": "One"},
  {"id": "jam", "value": "it`s bla-bla"},
  {"id": "abc", "value": "lowercase letter"},
  {"id": "ABC", "value": "uppercase letter"},
  {"id": "2", "value": "two"}
]
  • Вопрос задан
  • 1342 просмотра
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Приветствую!

Тут у вас массив объектов состоящий из 5 элементов.
[
  {"id": "1", "value": "One"},
  {"id": "jam", "value": "it`s bla-bla"},
  {"id": "abc", "value": "lowercase letter"},
  {"id": "ABC", "value": "uppercase letter"},
  {"id": "2", "value": "two"}
]


Data data = gson.fromJson(reader, Data.class);
А тут вы создаете лишь один объект. Скорее всего вам нужно получить list объектов.

Для Gson прочитайте эту статью:
https://howtodoinjava.com/gson/gson-parse-json-array/

Обратите внимание на:
[
    {
      "name": "Alex",
      "id": 1
    },
    {
      "name": "Brian",
      "id": 2
    },
    {
      "name": "Charles",
      "id": 3
    }
]


Вот, тут считывается в массив объектов
User[] userArray = gson.fromJson(userJson, User[].class);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы