【发布时间】:2020-01-09 17:48:03
【问题描述】:
我正在尝试使用 JSON 格式的 httpwebrequest 解析响应中的数据,我尝试使用 JSON.Net 但似乎没有运气,如果需要,我愿意使用 Regex。
当前代码示例 -
var request = (HttpWebRequest)WebRequest.Create("https://www.example.com/response");
request.Method = "GET";
request.Accept = "application/json";
request.ContentType = "application/json; charset=utf-8;"
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
dynamic data = JOBject.Parse(response);
Console.WriteLine(data.name);
完整响应示例 -
[{"_id":"hello","_source":{"name":"hello","example":"hey"},"_type":"_doc"}]
【问题讨论】:
-
不是
JObject,而是JArray。使用动态:dynamic data = JArray.Parse(response); Console.WriteLine(data[0]._source.name);,不使用:var data = JArray.Parse(response); Console.WriteLine(data[0]["_source"]["name"]);。您可以考虑反序列化为类结构(除非返回的 JSON 实际上就像您在此处显示的那样)。