在C#.NET中調用JSON數(shù)據(jù)類型非常方便,因為.NET框架使用了Json.NET庫,它具有很多功能和靈活性,可以解析和生成JSON數(shù)據(jù),同時也支持JavaScriptSerializer類。
下面是一個示例程序,它從JSON字符串中提取數(shù)據(jù)并將它們存儲到List對象中:
string jsonStr = "{\"name\":\"John Smith\",\"age\":35,\"emails\":[\"john.smith@example.com\",\"john.smith@hotmail.com\"]}"; dynamic jsonObj = JsonConvert.DeserializeObject(jsonStr); Listemails = new List (); foreach (var email in jsonObj.emails) { emails.Add(email.ToString()); } Console.WriteLine(jsonObj.name + " is " + jsonObj.age + " years old."); Console.WriteLine("Emails:"); foreach (var email in emails) { Console.WriteLine(email); }
上面的代碼中,我們首先定義了一個JSON字符串,然后使用JsonConvert.DeserializeObject()方法將它轉化為dynamic對象,這個對象的屬性和值可以直接訪問,如jsonObj.name和jsonObj.age。我們還可以使用foreach循環(huán)來遍歷jsonObj對象中的郵箱列表,并將它們存儲到List對象emails中。最后,我們使用Console.WriteLine()方法打印輸出結果。
在實際開發(fā)過程中,我們還可以使用JavaScriptSerializer類來實現(xiàn)JSON序列化和反序列化。這個類是.NET框架自帶的,可以很方便地將對象序列化為JSON字符串或將JSON字符串反序列化為對象。
JavaScriptSerializer jss = new JavaScriptSerializer(); string jsonString = jss.Serialize(emails); ListnewEmails = jss.Deserialize >(jsonString);
在上面的代碼中,我們首先創(chuàng)建了一個JavaScriptSerializer對象jss,然后使用jss.Serialize()方法將List對象emails序列化為JSON字符串,并將其存儲在jsonString變量中。當需要將JSON字符串反序列化為List對象時,我們可以使用jss.Deserialize()方法,并指定泛型類型為List字符串。
總之,在C#.NET中調用JSON數(shù)據(jù)類型非常方便,無論是使用Json.NET庫還是JavaScriptSerializer類,都可以很容易地實現(xiàn)序列化和反序列化操作。