關於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物件新增一個鍵值對
/// <summary>新增一個屬性
///
/// </summary>
/// <param name="obj">待新增屬性的物件</param>
/// <param name="key">鍵名</param>
/// <param name="value">值</param>
/// <returns>新增屬性後的物件</returns>
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());
}
C#關於JArray和JObject封裝JSON物件的使用
相關文章
- Android 動態代理以及利用動態代理實現 ServiceHookAndroidHook
- C#動態建立介面的實現例項物件C#物件
- [緊急求救]關於動態建立物件的問題物件
- PHP使用動態規劃實現最優紅包組合PHP動態規劃
- winform動態生成窗體並實現傳值返回ORM
- BCB中實現動態建立元件 (轉)元件
- 動態棧的實現
- 對於物件的動態建立例項問題物件
- 請教關於構件化動態組合開發的思路.
- 關於IDEA使用xml實現動態sql的問題IdeaXMLSQL
- banq 關於動態圖文結合
- SVG剪下蒙版屬性clip-path實戰,動態蒙版+動態圖形,動動組合SVG
- python實現在類中動態新增屬性和生成物件Python物件
- JavaScript代理模式,怎麼實現物件的動態代理?JavaScript模式物件
- UNIX下C++實現動態載入物件C++物件
- 基於.net standard 的動態編譯實現編譯
- 【乾貨】JDK動態代理的實現原理以及如何手寫一個JDK動態代理JDK
- 菜鳥學SSH(十八)——Hibernate動態模型+JRebel實現動態建立表模型
- Kettle實現動態SQLSQL
- 深挖JDK動態代理(二):JDK動態生成後的位元組碼分析JDK
- easyui datagrid 生成動態列後 實現分頁UI
- .NET Core 利用委託實現動態流程組裝
- 【Gin-API系列】實現動態路由分組(七)API路由
- Laravel 動態屬性的實現Laravel
- 基於jquery-treeview的動態選單實現jQueryView
- Go | Go 結合 Consul 實現動態反向代理Go
- css3實現動態摺疊生成立方體旋轉效果CSSS3
- 通過字串動態建立類物件字串物件
- 手動實現ArrayList動態陣列陣列
- 使用反射-動態建立物件及呼叫物件方法反射物件
- vue + element 實現快速關閉動態tabs功能Vue
- 關於動態表單遇到的一些問題
- Feign實現動態URL
- Avalonia 實現動態托盤
- Nginx 動態 upstreams 實現Nginx
- 在VB中實現窗體的動態效果 (轉)
- 利用模板實現動態的繼承體系 (轉)繼承
- 原生JS實現拋物線動畫以及動態模糊效果JS動畫