關於JObject的用法,以及實現動態生成實體對象、動態創建一些Josn組合

通過JObject和JArray創建JSON對象
我們先用非常簡單的方法來動態創建一些JSON,可通過JToken派生的JSON.NET對象來進行,最常見的JToken派生的類是JObject和JArray。

正是因爲JToken實現了IDynamicMetaProvider動態語言接口,所以可以使用dynamic關鍵字直觀地創建動態對象,並把這個動態對象序列化爲JSON字符串。 我們通過JArray和JObject來創建一個示例:

[TestMethod]
public void JObjectOutputTest()
{
    // strong type instance
    var jsonObject = new JObject();

// you can explicitly add values here
    jsonObject.Add(“Entered”, DateTime.Now);

// dynamic expando instance you can add properties to
    dynamic album = jsonObject;

album.AlbumName = “Dirty Deeds Done Dirt Cheap”;
    album.Artist = “AC/DC”;
    album.YearReleased = 1976;

album.Songs = new JArray() as dynamic;

dynamic song = new JObject();
    song.SongName = “Dirty Deeds Done Dirt Cheap”;
    song.SongLength = “4:11”;
    album.Songs.Add(song);

song = new JObject();
    song.SongName = “Love at First Feel”;
    song.SongLength = “3:10”;
    album.Songs.Add(song);

Console.WriteLine(album.ToString());
}
運行上面的示例代碼,就能形成以下結構的JSON內容:

{
    “Entered”: “2012-08-18T13:26:37.7137482-10:00”,
    “AlbumName”: “Dirty Deeds Done Dirt Cheap”,
    “Artist”: “AC/DC”,
    “YearReleased”: 1976,
    “Songs”: [
   {
       “SongName”: “Dirty Deeds Done Dirt Cheap”,
       “SongLength”: “4:11”
   },
   {
       “SongName”: “Love at First Feel”,
       “SongLength”: “3:10”
   }
 ]
}

C#給JSON對象添加一個鍵值對
        /// 添加一個屬性
        /// 
        ///
        /// 待添加屬性的對象
        /// 鍵名
        /// 值
        /// 添加屬性後的對象
        public static object Add(object obj, string key, object value)
        {
            JObject jObj = JObject.Parse(JsonConvert.SerializeObject(obj));
            jObj.Add(new JProperty(key, value));
            return JsonConvert.DeserializeObject(jObj.ToString());
        }
————————————————
版權聲明:本文爲CSDN博主「BruceYang~」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_34187499/article/details/99085935

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章