C# .Net 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反序列

我在这里使用SimpleJson库:

我想将JSON字符串反序列化为动态对象,如下所示:

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并遇到与我相同问题的人的有用工具。