将 RestReponse 转换为列表<object>

问题描述 投票:0回答:1

我在

ITAD API 端点
上使用 .GetAsync(),然后使用
.Content
作为字符串形式,但我需要
List<string>
的标题。

是否有一种内置方法可以将 RestResponse 转换为列表? 有没有办法删除应用程序标题之间的所有内容(包括应用程序标题之间的文本)到

String.Split
剩下的内容?

文档仅展示了一种将整个响应作为一个对象获取的方法。

c# list split restsharp
1个回答
1
投票

反序列化是你的朋友:)

响应数据看起来像一个字典,所以首先定义一个类将其反序列化为...

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])}"); 
© www.soinside.com 2019 - 2024. All rights reserved.