Нативная разработка мобильных приложений



Download 3,69 Mb.
Pdf ko'rish
bet193/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   189   190   191   192   193   194   195   196   ...   228
Bog'liq
Нативная разработка мобильных приложений

catalog.json
; однако если 
вы использовали реализацию на Java, эти экземпляры будут пустыми. Каждое 
свойство получит значение по умолчанию. Это объясняется использованием 
венгерской нотации в определениях свойств в классе 
Book
:
public class Book {
private final String mTitle;
private final String[] mAuthors;
private final String mIsbn;
private final int mPageCount;
private final boolean mIsFiction;
...
}
Когда библиотека Gson просматривает класс 
Book
и пытается найти свойства, 
соответствующие свойствам объекта JSON, она обнаружит, что в экземпляре 
класса 
Book
имеется свойство 
mTitle
, но нет свойства title – с другой стороны, 
в файле JSON нет ссылок на свойства mTitle, mIsbn или mAnything – в нем ис
-
пользуются более понятные человеку имена свойств. К счастью для нас, эта 
проблема настолько распространена в Android, что для ее устранения приду
-
мано простое решение, основанное на использовании аннотации 
Serialized­
Name
из библиотеки Gson. Добавьте эту аннотацию перед каждым свойством 
и укажите в ней строку с именем соответствующего свойства в файле JSON, 
например в коде на Java:
public class Book {
public static final Book[] SAMPLE_DATA = {
new Book("Fight Club", new String[]{"Chuck Palahniuk"}, 
"978-0393039764", 208, true),
new Book("2001: A Space Odyssey", new String[]{"Arthur C. Clarke"}, 
"978-0451457998", 296, true),
new Book("Ulysses", new String[]{"James Joyce"}, 
"978-1420953961", 682, true), 
new Book("Catch-22", new String[]{"Joseph Heller"}, 
"978-1451626650", 544, true),
new Book("The Stand", new String[]{"Stephen King"}, 
"978-0307947307", 1200, true),


Переключение слоя данных на использование JSON 

303
new Book("On The Road", new String[]{"Jack Kerouac"}, 
"978-0143105466", 416, true),
new Book("Heart of Darkness", new String[]{"Joseph Conrad"}, 
"978-1503275928", 78, true),
new Book("A Brief History of Time", new String[]{"Stephen Hawking"}, 
"978-0553380163", 212, false),
new Book("Dispatches", new String[]{"Michael Herr"}, 
"978-0679735250", 272, false),
new Book("Harry Potter and Prisoner of Azkaban", new String[]{"J.K. Rowling"},
"978-0439136365", 448, true),
new Book("Dragons Love Tacos", new String[]{"Adam Rubin", "Daniel Salmieri"},
"978-0803736801", 40, true)
};
@SerializedName("title")
private String mTitle;
@SerializedName("authors")
private String[] mAuthors;
@SerializedName("isbn")
private String mIsbn;
@SerializedName("pageCount")
private int mPageCount;
@SerializedName("fiction")
private boolean mIsFiction;
public Book(String title, String[] authors, String isbn, int pageCount,
boolean isFiction) {
mTitle = title;
mAuthors = authors;
mIsbn = isbn;
mPageCount = pageCount;
mIsFiction = isFiction;
}
public String getTitle() {
return mTitle;
}
public void setTitle(String title) {
mTitle = title;
}
public String[] getAuthors() {
return mAuthors;
}
public void setAuthors(String[] authors) {
mAuthors = authors;
}
public String getIsbn() {
return mIsbn;
}
public void setIsbn(String isbn) {
mIsbn = isbn;


304

Моделирование каталога библиотеки
}
public int getPageCount() {
return mPageCount;
}
public void setPageCount(int pageCount) {
mPageCount = pageCount;
}
public boolean isFiction() {
return mIsFiction;
}
public void setFiction(boolean fiction) {
mIsFiction = fiction;
}
}
На этот раз экземпляры 
Book
должны быть заполнены соответствующим об
-
разом. Отлично! Теперь у нас есть действующий протокол сериализации. Рас
-
смотрим некоторые особенности реализации, которые вы могли упустить из 
виду. Первое, что вы могли пропустить в предыдущем коде, – следующий труд
-
но читаемый фрагмент:

Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   189   190   191   192   193   194   195   196   ...   228




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish