【发布时间】:2020-02-04 11:52:53
【问题描述】:
我正在接收来自此 API 网页 (https://flagrantflop.com/api/endpoint.php?api_key=13b6ca7fa0e3cd29255e044b167b01d7&scope=team_stats&season=2019-2020&season_type=regular&team_name=Atlanta%20Hawks) 的 JSON 结果
使用 RestSharp 库,到目前为止我得到了这个:
var client = new RestClient("https://flagrantflop.com/api/endpoint.php?api_key=13b6ca7fa0e3cd29255e044b167b01d7&scope=team_stats&season=2019-2020&season_type=regular&team_name=");
var request = new RestRequest("Atlanta Hawks", DataFormat.Json);
var response = client.Get(request);
我已经测试了指定团队的 URL 和请求部分,并且两者都可以工作。
我知道有许多反序列化 JSON 的方法,但不确定最好的方法。
【问题讨论】:
-
使用 json2csharp.com 之类的东西从 JSON 生成 C# 类。然后使用 Newtonsoft JSON.NET 将响应反序列化到该类中
-
@史蒂夫干杯。我已经实现了该类,但是在执行
RootObject data = JsonConvert.DeserializeObject<RootObject>(response);时,我被告知我无法将 IRestResponse 转换为字符串。并将 .Content 添加到响应中会给我错误“解析值时遇到意外字符”。我认为 JSON 进来可能有错误?但是在网页上看起来不错 -
类似:
client.Execute(request, (response) => { RootObject data = JsonConvert.DeserializeObject<RootObject>(response.Content); });虽然您可能想在调用之外声明 RootObject。 -
或者
RootObject data = JsonConvert.DeserializeObject<RootObject>(response.Content); -
或者更简单地看这个答案:stackoverflow.com/questions/47429596/…
标签: c# json restsharp json-deserialization