JObject动态不能在Newtonsoft.Json 9.0中工作

时间:2017-02-15 14:14:53

标签: c# json json.net

此处有许多答案建议使用JObject作为dynamic的以下方式。

dynamic dynObj = JObject.Parse(jsonString);
OR
dynamic dynObj = JsonConvert.DeserializeObject<dynamic>(jsonString);

我的jsonString很简单:{"id":"123","name":"abc"}

它似乎不适用于Newtonsoft.Json 9.0。当我尝试其中任何一个时,我仍然会得到一个类型为object {Newtonsoft.Json.Linq.JObject}的对象。

当我尝试通过dynObj.id访问某个媒体资源时,我得到一个例外error CS1061: 'object' does not contain a definition for 'id' and no extension method 'id' accepting a first argument of type 'object' could be found

1 个答案:

答案 0 :(得分:4)

当DLR首次尝试绑定到对象上的属性时,您可能会看到调试器中抛出第一个机会异常。可以安全地忽略此异常,如果继续运行代码,它应该可以正常工作。

请参阅:Lots of first chance Microsoft.CSharp.RuntimeBinderExceptions thrown when dealing with dynamics