آموزش GSON - قسمت پنجم - دیسریالایز کردن آرایه و لیست
سه شنبه, ۱۱ آذر ۱۳۹۹، ۰۶:۴۵ ب.ظ
سورس جیسونی که قراره دیسریالایز بشه:
[
{
"name": "Christian",
"flowerCount": 1
},
{
"name": "Marcus",
"flowerCount": 3
},
{
"name": "Norman",
"flowerCount": 2
}
]
نحوه دیسریالایز کردن:
private void deSerialize() {
String jsonSrc ="[\n" +
" {\n" +
" \"name\": \"Christian\",\n" +
" \"flowerCount\": 1\n" +
" },\n" +
" {\n" +
" \"name\": \"Marcus\",\n" +
" \"flowerCount\": 3\n" +
" },\n" +
" {\n" +
" \"name\": \"Norman\",\n" +
" \"flowerCount\": 2\n" +
" }\n" +
"]";
Founder[] founders = new Gson().fromJson(jsonSrc, Founder[].class);
}
در اینجا یک آرایه از جنس Founder داریم.
نکتش اینه که قسمتی که کلاس مدل رو معرفی میکنیم باید انتهاش کروشه قرار بدیم.
خروجی:
حالا اگر بخواهیم خروجی در یک لیست ریخته بشه:
(متاسفانه خط اول یه مقدار حفظی طوره)
Type type = new TypeToken<ArrayList<Founder>>(){}.getType();
List<Founder> founders = new Gson().fromJson(jsonSrc, type);
خروجی:
نکته مهم: فقط در صورتی که روت جیسون از جنس آرایه باشه باید از Type استفاده کنیم یا کروشه باز و بسته در انتهای اسم کلاس قرار دهیم. در غیر این صورت (یعنی اگر روت آکولاد باشه) نیازی نیست و مثل قبل فقط اسم کلاس مدل رو مینویسیم.
۹۹/۰۹/۱۱