Json Parserexception解析值时遇到意外的字符:S。Path”,第0行,位置0

此代码生成意外字符的exception。 这段代码有什么问题? 错误是:Newtonsoft.Json.DLL中出现“Newtonsoft.Json.JsonReaderException”类型的exception,但未在用户代码中处理

附加信息:解析值时遇到意外的字符:S。路径”,第0行,位置0。

HttpClient http = new System.Net.Http.HttpClient(); http.DefaultRequestHeaders.Add("accept", "Application/JSON"); var page = http.GetStringAsync(searchUrl); var o = (JObject)JsonConvert.DeserializeObject(page.ToString()); 

HttpClient.GetStringAsync返回Task

您不必等待它完成,而是在其上调用.ToString() ,这可能是:

  • 返回Task类型的全名
  • 返回Task类型的一些内部字符串表示( 不太可能

因此,你拥有的不是Json文档,而是任务字符串,然后你尝试从中反序列化Json。

尝试:

 string page = await http.GetStringAsync(searchUrl); 

要么:

 string page = http.GetString(searchUrl).Result;