反序列化动态返回Newtonsoft.Json.Linq.JValue不包含'info'的定义

0 c# serialization json json.net

我有RESTful端点,返回以下内容:

{"error_msg": "{'status': 1, 'info': \"Operation is not allowed on 'XXX, ['YYY']'\", 'key': 'ZZZZ', 'extra': 'None', 'data': {}, 'EEEE': False}"}
Run Code Online (Sandbox Code Playgroud)

上面替换了一些文字(XXX,ZZZ等).

我的代码如下:

dynamic response = JsonConvert.DeserializeObject(new StreamReader(ex.Response.GetResponseStream()).ReadToEnd());
Console.Error.WriteLine(response.error_msg.info);
Run Code Online (Sandbox Code Playgroud)

构建运行代码后,我收到以下错误:

Newtonsoft.Json.Linq.JValue'不包含'info'的定义

不知道怎么解决这个问题?

谢谢

Mar*_*ell 5

那是因为error_msg这里是一个字符串,而不是一个对象.要么使它不是字符串,要么反序列化两次,即string error_msg取出,然后反序列化该字符串.