c# json数组动态字段名
根据给定的列名动态生成json数组
List<string> cols = new List<string>() { "姓名","性别","年龄"};
1.使用JArray,JObject对象
//JObject JArray arr = new JArray(); JObject obj = new JObject(); foreach (var col in cols) { obj[col] = col + "_test"; } arr.Add(obj); //获得对象的所有字段名 var itemProperties = ((JObject)arr[0]).Properties().ToList(); foreach (var item in itemProperties) { var v = item.Name+":"+item.Value; } string json1 = JsonEncode(arr);
2.使用Datatable
//Datatable DataTable dt = new DataTable(); var row = dt.NewRow(); foreach (var col in cols) { dt.Columns.Add(col); row[col] = col + "_test"; } dt.Rows.Add(row); string json2 = JsonEncode(dt); //var colName=dt.Columns[0].ColumnName;
3.使用Dynamic对象
//Dynamic http://www.cnblogs.com/xuejianxiyang/p/4964739.html dynamic dobj = new System.Dynamic.ExpandoObject(); var dic = (IDictionary<string, object>)dobj; foreach (var col in cols) { dic[col] = col + "_test"; } foreach (var fieldItem in (IDictionary<String, Object>)dobj) {//获得对象的所有字段名 var v = (fieldItem.Key + ": " + fieldItem.Value); } List<System.Dynamic.ExpandoObject> list = new List<System.Dynamic.ExpandoObject>(); list.Add(dobj); string json3 = JsonEncode(list);
public static string JsonEncode<T>(T jsonstruct, bool withIndentFormat = true)
{
//var setting=new JsonSerializerSettings();
//setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
Formatting format = Formatting.Indented;
if (!withIndentFormat)
{
format = Formatting.None;
}
return JsonConvert.SerializeObject(jsonstruct, format,
new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
PreserveReferencesHandling = PreserveReferencesHandling.None
});
}
From:http://www.cnblogs.com/xuejianxiyang/p/6639610.html
作者:xuejianxiyang
出处:http://xuejianxiyang.cnblogs.com
关于作者:Heaven helps those who help themselves.
本文版权归原作者和博客园共有,欢迎转载,但未经原作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥