我正在使用 JSON 获取 System.Net.WebResponse 然后将响应读取到 StringBuilder 中,然后通过调用 StringBuilder.ToString() 方法获取响应结果。我无法使用 Newtonsoft.Json.Linq.JObject.Parse(repsonse); 解析这样的响应。
我的问题是 ToString() 方法正在删除我的“{”和“}”字符,因为除非与另一个“{”匹配,否则它们会被转义。即使我做了一个 StringBuilder.Replace("{", "{{") 它也不起作用,因为最后的括号转义了第一个括号 --> 下面的示例
我获取响应的代码是:
public static string GetResponseFromRequest(string url){
System.Net.WebRequest req = System.Net.WebRequest.Create(url);
System.Net.WebResponse res = req.GetResponse();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
byte[] read = new byte[256];
int count = res.GetResponseStream().Read(read, 0, 256);
while (count > 0)
{
sb.Append(System.Text.ASCIIEncoding.ASCII.GetString(read));
count = res.GetResponseStream().Read(read, 0, 256);
}
res.GetResponseStream().Close();
res.Close();
return sb.ToString();
}
以下是我的回复的示例:
{{
"id" : "myID",
"Name" : "MyDisplayName",
"description" : "A, MyDescription",
}"hasOverview" : true,
"hasDescription" : true,
}
在调用 StringBuilder.ToString 之后,它看起来像这样:
"{
"id" : "myID",
"Name" : "MyDisplayName",
"description" : "A, MyDescription",
}"hasOverview" : true,
"hasDescription" : true,
"
如果我调用 StringBuilder.Replace("{", "{{") 和 StringBuilder.Replace("}", "}}") 我得到:
"{{
"id" : "myID",
"Name" : "MyDisplayName",
"description" : "A, MyDescription",
}}"hasOverview" : true,
"hasDescription" : true,
"
我需要一种方法来告诉 ToString() 返回字符串生成器所持有内容的文字表示,因此它不考虑特殊字符。如果可能的话,特别是 '{' 和 '}' 字符。