Объясните в чем разница между
@SerializedName("name")
public String str;`
// и
public String str
Доступ к переменной я и так и так могу получить. Зачем тогда SerializedName
нужен?
Java class example,
public class Person {
@SerializedName("name")
private String personName;
@SerializedName("bd")
private String birthDate;
}
Этот класс имеет два поля, они аннотируются аннотацией @SerializedName. Параметр (значение) этой аннотации - это имя, которое будет использоваться при сериализации и десериализации объектов. Например, поле Java personName представляется как name в JSON.
JSON Example,
{
"name":"chintan",
"bd":"01-01-1990"
}
С помощью аннотации SerializedName из Gson
можно указывать имя сериализуемого/десериализуемого поля при парсинге Json или при переводе объекта в Json.
Например у вас есть ваш класс:
class MyString {
@SerializedName("mystring") public String str;
}
и Json вида {"str":"some text"}
, тогда при десериализации этого Json ваше поле str
будет null
, потому что вы явно указали, что при десериализации в str
должно писаться значение из поля json mystring
. То есть если вы хотите, чтобы json правильно десериализовался, нужно передавать такой Json в этом случае: {"mystring":"some text"}
При отсутствии аннотации SerializedName
поле будет десериализовываться на основе имени поля в классе, с поправкой на FieldNamingPolicy, которую вы указали при создании объекта Gson
(либо FieldNamingPolicy.IDENTITY
- значение по умолчанию).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добавлять строки или данные из БД на веб-страницу - не проблема
У меня есть файл carscsv, как задать универсальный путь к этому файлу, чтобы с каждого компьютера компилятор его видел? Использовал такой способ:
Как сделать условие if !logged в IONIC Framework? Например мне нужно, чтобы в приложении человек который не залогинен видел одну информацию, а именно...