繁体   English   中英

c# - 如何在没有任何模型或映射器的情况下将json转换为对象

[英]How to convert json to object without any model or mapper in c#

如何将json转换为c#中的对象? 下面是 json 的示例,有时它可能是复杂的 json。 我不想使用任何模型。 并且不使用任何映射器。 请提出一些建议-

{'firstName':'Ram','country':'India','email':'test@test.com'}

Json 每次都会有所不同,例如-

{'firstName':'Ram','lastName':'tho','country':'India','email':'test@test.com'}

{'firstName':'Ram','country':'India','state':'MP','city':'Bhp'}

示例代码将不胜感激:) 谢谢

如果您根据该数据从Newtonsoft构建JObject ,则可以求助于使用“json 路径”或属性路径表示法。

如果你这样做了,就不要抱怨性能。

我经常使用 JSON 和基于 Web 的 API,除了 C# 中的 Newtonsoft 之外,我绝不会使用任何其他东西来处理 JSON 转换,这实际上是在 C# 中使用 JSON 做任何事情的最佳方式,而且没有任何麻烦,它是最受欢迎的 C# NuGet 包在世界上有近 10 亿次下载,基本上适用于所有 .NET 版本。

这是最简单的例子之一

string json_string = @"{
                  Firstname: ""Jane"",
                  Lastname: ""Doe"",
                  Age: 36,
                  IsEmployed: true,
                  IsMarried: true,
                  Children: 4
              }";
              
var person = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(json_string);

Console.WriteLine(person.Forename);
Console.WriteLine(person.Lastname);
Console.WriteLine(person.Age);
Console.WriteLine(person.IsEmployed);
Console.WriteLine(person.IsMarried);
Console.WriteLine(person.Children);

无论结构如何,它都会即时生成对象! 其他解决方案不适用于所有 .NET 版本。

我在这里写了一篇简单易懂的文章https://turmanauli.medium.com/a-complete-guide-for-serializing-json-to-dynamic-objects-on-the-fly-in-c- 7ab4799f648d关于如何在 Visual Studio 项目中通过 NuGet 包管理器安装和使用 Newtonsoft。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM