2018年6月28日 星期四

[C#] JSON.Net 處理動態物件

JArray:JavaScript陣列。
JObject:JavaScript物件。
JProperty:JavaScript物件之屬性,為Key-Value對應。

JArray、JObject、JObject共同繼承JToken抽象類別。
JArray含有多個JObject,JObject含有多個JProperty。
JArray、JObject都可為JProperty的Value。

JArray.Parse(json):將JSON字串轉成JArray物件。
JObject.Parse(json):將JSON字串轉成JObject物件。
JObject.Property(key):取出JObject之JProperty屬性。
Property.Name:取出JProperty的Key值。
Property.Value:取出JProperty的Value值。

JObject John = new JObject();
John.Add(new JProperty("Name", "John"));
John.Add(new JProperty("Birthday", new DateTime(1993,6,10)));

JObject Mary = new JObject();
Mary.Add(new JProperty("Name", "Mary"));
Mary.Add(new JProperty("Birthday", new DateTime(1995, 3, 20)));

JArray array = new JArray();
array.Add(John);
array.Add(Mary);

//[{"Name":"John","Birthday":"1993-06-10T00:00:00"},{"Name":"Mary","Birthday":"1995-03-20T00:00:00"}]
string json = JsonConvert.SerializeObject(array);
Console.WriteLine(json);

var ja = JArray.Parse(json);

JObject jo = ja[0] as JObject;
Console.WriteLine("Name:" + jo.Property("Name").Value);
Console.WriteLine("Birthday:" + jo.Property("Birthday").Value);

JObject jo1 = ja[1] as JObject;
foreach (var Property in jo1.Properties())
{
   Console.WriteLine(Property.Name + ":" + Property.Value);
}

沒有留言:

張貼留言