C# .Net SimpleJson:将JSON反序列化为动态对象
我在这里使用SimpleJson库: 我想将JSON字符串反序列化为动态对象,如下所示:C# .Net SimpleJson:将JSON反序列化为动态对象,c#,.net,json,C#,.net,Json,我在这里使用SimpleJson库: 我想将JSON字符串反序列化为动态对象,如下所示: dynamic json = SimpleJson.SimpleJson.DeserializeObject("{\"foo\":\"bar\"}"); var test = json.foo; 反序列化部分工作正常,但调用json.foo会抛出RuntimeBinderException,错误消息为“SimpleJson.JsonObject”不包含“foo”的定义 如何使用SimpleJson反序列
dynamic json = SimpleJson.SimpleJson.DeserializeObject("{\"foo\":\"bar\"}");
var test = json.foo;
反序列化部分工作正常,但调用json.foo会抛出RuntimeBinderException,错误消息为“SimpleJson.JsonObject”不包含“foo”的定义
如何使用SimpleJson反序列化JSON字符串并使用JSON.foo语法访问动态属性?查看示例,
JsonObject
属性的访问就像字典一样。因此,您需要的不是json.foo
,而是json[“foo”]
实际上,在这里使用dynamic
的情况更糟,因为它没有任何动态性:该方法返回JsonObject
,它没有foo
成员。如果没有使用dynamic
,您可能会在编译时收到该错误消息
如果您看一下提供的链接L.B.,它将展示如何自己实现此动态功能。好的,只需阅读SimpleJson的源代码即可。:-)一行需要取消注释以支持我正在寻找的动态语法。不确定为什么默认情况下不启用此功能 从源代码:
// NOTE: uncomment the following line to enable dynamic support.
//#define SIMPLE_JSON_DYNAMIC
>csc/t:library/d:SIMPLE\u JSON\u DYNAMIC SimpleJson.cs这是一个公平的评论,L.B.我不能删除这个问题,所以希望这将成为其他通过NuGet安装SimpleJson并遇到与我相同问题的人的有用工具。