【问题标题】:Json Parser Exception Unexpected character encountered while parsing value: S. Path '', line 0, position 0Json Parser Exception 解析值时遇到意外字符:S. Path '', line 0, position 0
【发布时间】:2014-02-09 04:48:36
【问题描述】:

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

附加信息:解析时遇到意外字符 value: S. Path '', line 0, position 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());

【问题讨论】:

  • searchUrl 的类型是 uri。

标签: c#


【解决方案1】:

HttpClient.GetStringAsync 返回一个Task<string>

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

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

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

试试:

string page = await http.GetStringAsync(searchUrl);

或:

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

【讨论】:

    猜你喜欢
    • 2022-11-05
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多