我有一个字符串值:
var responseString = {"ErrorType":"ServerError","Message":"Incoming data error.","Properties":null}
调用JObject.Parse(responseString);
时,会得到以下动态对象:
{{
"ErrorType": "ServerError",
"Message": "Incoming data error.",
"Properties": null
}}
为什么JObject创建动态对象,该对象是包装在对象中的对象?我希望编写代码来访问诸如responseMessage.Message as string
之类的Message属性,但这会引发错误。
答案 0 :(得分:1)
我刚刚在LinqPad中尝试了以下代码:
var responseString = "{\"ErrorType\":\"ServerError\",\"Message\":\"Incoming data error.\",\"Properties\":null}";
dynamic responseMessage = JObject.Parse(responseString);
var msg = (string) responseMessage.Message;
msg.Dump();
在输出中,我得到了所需的Incoming data error.
字符串,因此看起来它在做什么。您的代码看起来如何?您正在使用什么版本的Json.NET?另外,由于值是as
,因此无法使用null
转换为字符串,因为它将返回JToken
。您需要显式强制转换。