HTTPCONTENT READASASYNC映射数据来自API C#



我正在执行服务器到服务器通信,并且我从API中获取数据。我使用HTTP Web客户端来做到这一点。这是我的代码

public async Task<List<Report>> GetReports(string tokenType, string token, int page, int count)
{
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, token);

    var builder = new UriBuilder(ApiEndPointBase + "api/" + ApiVersion + "/LibraryDocument");
    builder.Port = -1;
    var query = HttpUtility.ParseQueryString(builder.Query);
    query["page"] = page.ToString();
    query["count"] = count.ToString();
    builder.Query = query.ToString();
    string url = builder.ToString();
    var result = await client.GetAsync(url);

    if (!result.IsSuccessStatusCode)
        throw new Exception("");
    List<Report> reports = new List<Report>();
    await result.Content.ReadAsAsync<List<Report>>().ContinueWith(response =>
   {
       reports = response.Result;
   });
    return reports;
}

我遇到的问题是我以这种格式从服务器获取数据

public class Report 
{
    public int pK_LibraryDocument { get; set; }
    public string fileName { get; set; }
    public List<string> AvailableForModules { get; set; }
}

,但我想要这样的数据

public class Report 
{
    public int id{ get; set; }
    public string fileName { get; set; }
    public List<string> AvailableForModules { get; set; }
}

我可能还会更改其他变量名称。这样做的原因是我将拥有多个具有相同数据的数据源,但是格式或名称会有所不同。因此,我想为自己的自我命名。

是否有可能以不昂贵的(耗时)的方式。

json.net默认使用用于调整JSON字段名称的JsonProperty属性:

public class Report 
{
    [JsonProperty("pK_LibraryDocument")]
    public int id { get; set; }
    public string fileName { get; set; }
    public List<string> AvailableForModules { get; set; }
}

相关内容

  • 没有找到相关文章

最新更新