C# 如何获取json字符串某些部分的值?

C# 如何获取json字符串某些部分的值?,c#,asp.net,json,api,C#,Asp.net,Json,Api,我正在使用这个Json结构,但我不知道如何获取Json键部分的值 我使用这段代码向API发送请求,返回的是一个Json对象: var reqData=HttpWebRequestWebRequest.Createstring.Formathttp://server_ip/system/message/date/{0}/,txtDate.Text; reqData.ContentType=应用程序/json; reqData.Method=GET; var answer=HttpWebRespon

我正在使用这个Json结构,但我不知道如何获取Json键部分的值

我使用这段代码向API发送请求,返回的是一个Json对象:

var reqData=HttpWebRequestWebRequest.Createstring.Formathttp://server_ip/system/message/date/{0}/,txtDate.Text; reqData.ContentType=应用程序/json; reqData.Method=GET; var answer=HttpWebResponsereqData.GetResponse; List convert=JsonConvert.DeserializeObjectanswer; 结果是一个Json结构,如下所示:

"[
  {
   \"idMessage\":\"--Message Id--",
   \"idTemplate\":--TemplateId--,
   \"mail\":\"--mail dir--\",
   \"subject\":\"--message subject--\",
    \"json\":\"{
                \\\"Id\\\":\\\"--Person Id--\\\",
                \\\"name\\\":\\\"--Person name--\\\",
                \\\"date\\":\\\"--Register date-\\\",
                \\\"hour\\\":\\\"--Register hour--\\\"
               }\",
    \"senddate\":\"--sent date--\",
    \"status\":0,
    \"template\":null
   }
  ]"
var id = json["Id"];
我想从这个json字符串的json部分获取值Id、name、date、hour,有人能帮我获取这些值吗?

json属性包含更多json字符串,因此您必须再次反序列化,就像您对整个外部结构进行反序列化一样

现在您有了convert数组,可以提取第一个对象,获取json的值并反序列化:

var json = JsonConvert.DeserializeObject<Dictionary<string, string>>(convert[0]["json"]);

请注意,您问题中的JSON实际上是无效的。其中有一些错误。但我假设它们只是复制/粘贴错误,web服务实际上返回的是有效的JSON。

您问题中的JSON格式不正确-似乎有一些字符串转义可能是由调试器或JSON可视化工具添加的。您能否在不转义的情况下共享原始JSON?事实上,逃逸是不一致的;e、 g.在\idMessage\:\-Message Id中-最后的“”字符似乎没有转义,这使得测试代码变得很困难。