Csharp/C#教程:如何使用JSON.Net反序列化为匿名类型?分享


如何使用JSON.Net反序列化为匿名类型?

只是尝试从JSON创建一个匿名类型,而不必提前了解任何参数,并完全解释它们(可能带有提示)。 即该值“看起来”像int,string或date。

到目前为止,我所知道的唯一方法是创建一个您已经预先了解的匿名类型。 请参阅下面的.DeserializeAnonymousType(…)方法。

任何人都可以比这更好吗? 谢谢。

var jsonString = "{"user_id": 1, "user_type": "moderator", "name": "Fred"}"; JToken root = JObject.Parse(jsonString); var anonTemplate = new{user_id=0, user_type="", name="" }; var a = JsonConvert.DeserializeAnonymousType(root.ToString(), anonTemplate); var b = JsonConvert.DeserializeObject(root.ToString()); // actually turns into a JsonObject which is something differet. 

更新

我下载了dynamicduck并且正在玩它。 这种奇怪的动态“包装”理念是否会以我需要的方式(可序列化等)实现?

https://weblogs.asp.net/britchie/archive/2010/08/05/json-net-dynamic-extensions.aspx

https://weblogs.asp.net/britchie/archive/2010/08/03/dynamicduck-duck-typing-in-a-dynamic-world.aspx

您可以使用ExpandoObjectConverter将JSON.NET反序列化为ExpandoObjectConverter

要在运行时创建一个匿名类型,它要复杂得多,看看在这个线程中跳过的箍:

如何创建LINQ表达式树以选择匿名类型

你可以看到相当多的努力可能是不值得的,因为你仍然不会得到任何编译时间安全。 所以动态或ExpandoObject是你最好的赌注。

上述就是C#学习教程:如何使用JSON.Net反序列化为匿名类型?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/983973.html

(0)
上一篇 2021年12月19日
下一篇 2021年12月19日

精彩推荐