Имеют ли эти классы Java правильную структуру для отображения из файла JSON?

Я разбираю файл JSON в код Java с определенного URL-адреса. Это выглядит легко. Но по некоторым причинам сервер отвечает null для некоторых ключ-значение, которые я покажу ниже. Я совершенно уверен, что с этими структурами что-то не так (на стороне Java). Вот структура json.

введите здесь описание изображения

А вот и коды (геттеры-сеттеры предоставлены, просто не показываю, чтобы было понятно)

class JSON {

    List<Result> result;

}


class Results{
    String gender;
    Name name;
    Location location
}


class Name{
    String title;
    String first;
    String last;
}

class Location {
    String city;
    String state;
    String country;
    String postcode;

}

Я не уверен, где именно я это пропустил. Имеют ли эти классы правильную структуру относительно структуры JSON?


person Plain_Dude_Sleeping_Alone    schedule 22.10.2019    source источник
comment
Что такое нулевые поля? Судя по твоему изображению, все правильно.   -  person Andrea    schedule 22.10.2019
comment
И не забудьте упомянуть, как вы разбираете JSON?   -  person Mushif Ali Nawaz    schedule 22.10.2019
comment
Обратите внимание, что postcode имеет числовой тип в JSON.   -  person Arnaud    schedule 22.10.2019
comment
Привет, другой ключ, который называется Info (класс Info), имеет ту же иерархическую позицию, что и Results, и он правильно сопоставлен, но не результаты   -  person Plain_Dude_Sleeping_Alone    schedule 22.10.2019
comment
@Mushif Али Наваз, на самом деле это переменная result, которую невозможно проанализировать, даже если тип был правильным (т.е. Результат). Это связано с тем, что имя метода получения переменной должно совпадать с именем после префикса. У меня есть getResults(), поэтому переменная должна быть results. Я не вижу никаких причин, почему я должен рассказывать вам, что я хочу сделать с json. Потому что мой вопрос довольно прост, где это идет не так.   -  person Plain_Dude_Sleeping_Alone    schedule 22.10.2019


Ответы (4)


Похоже, вам нужно иметь results вместо result в классе JSON

person Noshaf    schedule 22.10.2019
comment
Изменить: это не имя типа, а поле действительно имеет значение. Спасибо, мой друг. - person Plain_Dude_Sleeping_Alone; 22.10.2019

Я видел ваш класс Java и ответ JSON в расположении объекта, это не улица внутреннего объекта.

person Morteza Jalambadani    schedule 22.10.2019
comment
Ого, не могу поверить, что это пропустили. Но в моем примере его просто нет. - person Plain_Dude_Sleeping_Alone; 22.10.2019

Я вижу одну проблему,

Почтовый индекс String кажется числом в JSON выше.

person eyalka    schedule 22.10.2019

Проблема заключается в том, что пользовательская ссылка на класс null
Попробуйте этот вариант и создайте ссылку HAS-A на объект. Инициализируйте объекты с помощью конструктора().

class JSON {
        List<Result> result;
        public JSON(){
           result = new ArrayList()
        }


    }


    class Results{
        String gender;
        Name name;
        Location location
        public Results(){
           Name = new Name();
           Location = new Location();
        }
    }


    class Name{
        String title;
        String first;
        String last;
    }

    class Location {
        String city;
        String state;
        String country;
        String postcode;

    }
person BATMAN_    schedule 22.10.2019