В чем разница между SerializedName и именем переменной?

182
05 сентября 2017, 09:03

Объясните в чем разница между

@SerializedName("name")
public String str;`  
// и   
public String str

Доступ к переменной я и так и так могу получить. Зачем тогда SerializedName нужен?

Answer 1

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"
}
Answer 2

С помощью аннотации 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 - значение по умолчанию).

READ ALSO
Java, localhost и HTML: страница авторизации

Java, localhost и HTML: страница авторизации

Добавлять строки или данные из БД на веб-страницу - не проблема

267
Java - Универсальный путь к файлу

Java - Универсальный путь к файлу

У меня есть файл carscsv, как задать универсальный путь к этому файлу, чтобы с каждого компьютера компилятор его видел? Использовал такой способ:

184
Есть приложение на IONIC. Как сделать условие?

Есть приложение на IONIC. Как сделать условие?

Как сделать условие if !logged в IONIC Framework? Например мне нужно, чтобы в приложении человек который не залогинен видел одну информацию, а именно...

184