- 如同上一小節的做法
- 我們可以把 JSON 字串轉換成陣列
- 只需要把原本的類別名稱替換成
List<類別名稱>
範例
string jsonString = @"""{""webinfos"":[{""webname"":""FoxDevelop"",""website"":""foxdevelop.com"",""age"":4,
""students"":[{""name"":""志偉""},{""name"":""建宏""}]},{""webname"":""FoxDevelop1"",""website"":""foxdevelop.com1"",
""age"":6,""students"":[{""name"":""俊傑""},{""name"":""明輝""}]}]}""";
StringReader sr = new StringReader(jsonString);
JsonReader jr = new JsonReader(sr);
List<WebInfo> infoList = new JsonSerializer().Deserialize(jr, typeof(List<WebInfo>)) as List<WebInfo>;Code language: PHP (php)
說明
- 程式結構、變數名、跳脫雙引號、換行全部維持不變,只替換指定文字
- 後續反序列化的程式邏輯不需要做任何修改
① List 序列化為 JSON 陣列字串
// 建立 List 集合
List<WebInfo> webList = new List<WebInfo>()
{
new WebInfo()
{
age = 4,
webname = "FoxDevelop",
website = "foxdevelop.com",
students = new Person[] { new Person{name="志偉"}, new Person{name="建宏"} }
},
new WebInfo()
{
age = 4,
webname = "FoxDevelop1",
website = "foxdevelop.com",
students = new Person[] { new Person{name="俊傑"}, new Person{name="明輝"} }
},
new WebInfo()
{
age = 4,
webname = "FoxDevelop2",
website = "foxdevelop.com",
students = new Person[] { new Person{name="家豪"}, new Person{name="宗翰"} }
}
};
// 序列化:List物件 → JSON陣列字串
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
new JsonSerializer().Serialize(writer, webList);
string jsonArrStr = sw.GetStringBuilder().ToString();Code language: PHP (php)
② JSON 陣列字串反序列化為 List
string jsonString = @"[{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,
"students":[{"name":"志偉"},{"name":"建宏"}]},{"webname":"FoxDevelop1","website":"foxdevelop.com",
"age":4,"students":[{"name":"俊傑"},{"name":"明輝"}]},{"webname":"FoxDevelop2","website":"foxdevelop.com",
"age":4,"students":[{"name":"家豪"},{"name":"宗翰"}]}]";
StringReader sr = new StringReader(jsonString);
JsonReader jr = new JsonTextReader(sr);
List<WebInfo> dataList = new JsonSerializer().Deserialize(jr, typeof(List<WebInfo>)) as List<WebInfo>;Code language: PHP (php)
陣列的序列化與反序列化
Previous: 序列化與反序列化