C# anonymous types and serialization
static void AnonymousSerializeDemo() { var data = new { firstPart = new { item1 = "item1", item2 = "item2", item3 = 10 }, secondPart = new { pp1 = new { ii1 = "ii1", ii2 = "ii2", ii3 = 20 }, pp2 = new { ii2 = "ii2", ii3 = "ii3", ii5 = new { iii1 = "iii1", iii2 = "iii2", Student = new { Id = 1, Name = "Fred1" } }, }, } }; string jsonValue = JsonConvert.SerializeObject(data, Formatting.Indented); System.Diagnostics.Debug.WriteLine(jsonValue); Console.WriteLine(jsonValue); }
Result:
{ "firstPart": { "item1": "item1", "item2": "item2", "item3": 10 }, "secondPart": { "pp1": { "ii1": "ii1", "ii2": "ii2", "ii3": 20 }, "pp2": { "ii2": "ii2", "ii3": "ii3", "ii5": { "iii1": "iii1", "iii2": "iii2", "Student": { "Id": 1, "Name": "Fred1" } } } } }
static void AnonymousSerializeDemo() { var data = new { Country=new { Name="USA", Code="001", }, State=new { Name = "NY", Id = "001", Companies = new { MS = new { Name = "MS", Id = 1, MarketCap = 1, Grounp=new { Name="Azure", Profit=2, Amount=10000, Founder="Bill Gates", DB=new { Name= "Oracle,MSSQL,MYSQL,PostSQL" }, Language=new { C1= new { Name = "C#", Id = 1, traits=new { CLR=new { Name="CLR", Purpose="GC" }, Delegate=new { Name="Del", p="Function pointer" }, Relection=new { Name="Reflection", p="Assembly,Metadata" }, MultiThreads=new { lockC=new { Name="Lock", p="lock(obj)" }, Monitorc=new { Name="Monitor", p="Monitor.Enter,Monitor.Exit" }, Mutexc=new { Name="Mutex", p="Exclude" }, } } }, c2= new { Name="VC", Id=2 } }, } }, APPL = new { Name = "APPL", Id = 2, MarketCap = 2 }, Amazon = new { Name = "AWS", Id = 3, MarketCap = 3 } } } }; string jsonValue = JsonConvert.SerializeObject(data, Formatting.Indented); System.Diagnostics.Debug.WriteLine(jsonValue); Console.WriteLine(jsonValue); }
{ "Country": { "Name": "USA", "Code": "001" }, "State": { "Name": "NY", "Id": "001", "Companies": { "MS": { "Name": "MS", "Id": 1, "MarketCap": 1, "Grounp": { "Name": "Azure", "Profit": 2, "Amount": 10000, "Founder": "Bill Gates", "DB": { "Name": "Oracle,MSSQL,MYSQL,PostSQL" }, "Language": { "C1": { "Name": "C#", "Id": 1, "traits": { "CLR": { "Name": "CLR", "Purpose": "GC" }, "Delegate": { "Name": "Del", "p": "Function pointer" }, "Relection": { "Name": "Reflection", "p": "Assembly,Metadata" }, "MultiThreads": { "lockC": { "Name": "Lock", "p": "lock(obj)" }, "Monitorc": { "Name": "Monitor", "p": "Monitor.Enter,Monitor.Exit" }, "Mutexc": { "Name": "Mutex", "p": "Exclude" } } } }, "c2": { "Name": "VC", "Id": 2 } } } }, "APPL": { "Name": "APPL", "Id": 2, "MarketCap": 2 }, "Amazon": { "Name": "AWS", "Id": 3, "MarketCap": 3 } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现