我在
ITAD API 端点上使用
.GetAsync()
,然后使用 .Content
作为字符串形式,但我需要 List<string>
的标题。
是否有一种内置方法可以将 RestResponse 转换为列表? 有没有办法删除应用程序标题之间的所有内容(包括应用程序标题之间的文本)到
String.Split
剩下的内容?
文档仅展示了一种将整个响应作为一个对象获取的方法。
反序列化是你的朋友:)
响应数据看起来像一个字典,所以首先定义一个类将其反序列化为...
public class Response
{
public Dictionary<string, string[]> data { get; set; }
}
将以下
using
添加到要进行反序列化的文件顶部...
using System.Text.Json;
假设您将字符串内容放在名为
content
的变量中,然后像这样反序列化...
var response = JsonSerializer.Deserialize<Response>(content);
使用端点将它们放在一起并将字典键转换为列表...
const string url = @"https://api.isthereanydeal.com/v01/game/map/?key=46594d518d6e4aedb823ecb4e6d00a54a10f1155&shop=steam";
var client = new RestClient();
var restRequest = new RestRequest(url);
var restResponse = client.GetAsync(restRequest);
var content = restResponse.Result.Content;
var response = JsonSerializer.Deserialize<Response>(content);
var titleIds = response.data.Keys.ToList();
foreach (var id in titleIds)
Console.WriteLine($"{id}: {string.Join(',', response.data[id])}");