Как работает Gson.fromJson (String, Class)? - PullRequest
0 голосов
/ 03 мая 2019

Рассмотрим следующий пример строки Json:

{"Name":"val","FatherName":"val","MotherName":"val"}

Я преобразую вышеприведенный Json в следующее pojo:

public class Info{
    private String name;
    private String father;
    private String mother;
}

Что мне интересно, когда я делаю следующее:

Gson.fromJson(jsonLine, Info.class);

Как ключи в объекте json отслеживаются с переменными в моем pojo?Как значение ключа FatherName хранится в father в Info.class?

1 Ответ

0 голосов
/ 03 мая 2019

Gson использует отражение (https://android.jlelse.eu/reflections-on-reflection-performance-impact-for-a-json-parser-on-android-d36318c0697c). Так что пример json не будет работать должным образом, в вашем примере есть несколько вариантов решения этой проблемы

  1. Измените строку json на {"name": "val", "Father": "val", "mother": "val"}
  2. Изменить свойства в информационном классе Father-FatherName и то же самое для mother. 3 Создать настраиваемый сериализатор GSON - Специальный сериализатор в конкретном случае

Благодаря @Aaron

вы также можете аннотировать переменные с помощью @ SerializedName

@ SerializedName ("папа") приватная строка FatherName;

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