一般我們在開發C#應用程式的時候時常會使用自定義的List
一般我們在開發C#應用程式的時候時常會使用自定義的List<Object> 陣列來放置我們的資料,或許有時我們會想要將List<>內的物件存起來以供下次程式開啟時使用,但是在Win store app 或Windows Phone app 開發時提供的Local Folder 和 Roaming Folder存放資料時並不能放入List<>的陣列只能放入簡單的String int double bool 之類的變數,所以我們可以嘗試將List<>轉換為JSON的文字,以便存放在這些空間裡或是傳送到其他地方。
本篇文章將引導您 將List<Object> 中的陣列序列化轉換為JSON
在這之前要有事前準備在[專案]→[管理NeGet套件]中下載Json.NET的套件。
我們要自定義一個類別,就以學生的姓名和身高為例。
1: public class student_Item {
2: public string name { set; get; }//姓名
3: public int tall { set; get; }//身高
4: }
再來主程式內建立假資料
1: //建立假資料
2: List<student_Item> student_Items = new List<student_Item>();
3: student_Items.Add(new student_Item() { name = "小美", tall = 166 });
4: student_Items.Add(new student_Item() { name = "小強", tall = 185 });
5: student_Items.Add(new student_Item() { name = "小明", tall = 148 });
6: student_Items.Add(new student_Item() { name = "小琪", tall = 186 });
7: student_Items.Add(new student_Item() { name = "小程", tall = 174 });
8: student_Items.Add(new student_Item() { name = "小楊", tall = 165 });
建完假資料後最重要的一行程式碼補上,該行程式碼便是將List序列化成JSON格式的字串
1: string json_data = JsonConvert.SerializeObject(student_Items);//存放序列後的文字
整個程式碼看起來就會像這樣子
1: List<student_Item> student_Items = new List<student_Item>();
2: student_Items.Add(new student_Item() { name = "小美", tall = 166 });
3: student_Items.Add(new student_Item() { name = "小強", tall = 185 });
4: student_Items.Add(new student_Item() { name = "小明", tall = 148 });
5: student_Items.Add(new student_Item() { name = "小琪", tall = 186 });
6: student_Items.Add(new student_Item() { name = "小程", tall = 174 });
7: student_Items.Add(new student_Item() { name = "小楊", tall = 165 });
8:
9: string json_data = JsonConvert.SerializeObject(student_Items);//存放序列後的文字
json_data裡面的資料就會長得像這樣了,是經過序列化後的JSON格式資料!!
[ { "name" : "小美",
"tall" : 166
},
{ "name" : "小強",
"tall" : 185
},
{ "name" : "小明",
"tall" : 148
},
{ "name" : "小琪",
"tall" : 186
},
{ "name" : "小程",
"tall" : 174
},
{ "name" : "小楊",
"tall" : 165
}
]
如此一來我們便學會了如何將List<>轉換為JSON格式的資料囉!
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 ! 感謝。
SUKI