C# 如何在Xamarin上的GetAPI中将这个JSON对象映射到C对象

C# 如何在Xamarin上的GetAPI中将这个JSON对象映射到C对象,c#,json,xamarin,C#,Json,Xamarin,下面有一个JSON对象 { "Metadata": { "TotalRecords": 12, "CurrentPageSize": 2, "CurrentPage": 1, "TotalPages": 2 }, "Results": [ { "Id": 1, "OwnerId": "3be73a87-a977-467a-84c0", "OwnerName": "AV", "CategoryId"

下面有一个JSON对象

{
  "Metadata": {
    "TotalRecords": 12,
    "CurrentPageSize": 2,
    "CurrentPage": 1,
    "TotalPages": 2
  },
  "Results": [
    {
      "Id": 1,
      "OwnerId": "3be73a87-a977-467a-84c0",
      "OwnerName": "AV",
      "CategoryId": 3,
      "CategoryName": "User 1 Physical",
      "Name": "User 1 Speed",
      "Description": null,
      "NoOfMinutes": 15,
      "CreatedDate": "2019-09-22T03:34:56.4033333",
      "ModifiedDate": null
    },
    {
      "Id": 2,
      "OwnerId": "3be73a87-a977-467a-84c0",
      "OwnerName": "AV",
      "CategoryId": 1,
      "CategoryName": "User 1 Technique",
      "Name": "User 1 tech",
      "Description": null,
      "NoOfMinutes": 60,
      "CreatedDate": "2019-09-22T03:34:56.4033333",
      "ModifiedDate": null
    }
  ]
}
并使用JSON2Csharp:

public class Metadata
{
    public int TotalRecords { get; set; }
    public int CurrentPageSize { get; set; }
    public int CurrentPage { get; set; }
    public int TotalPages { get; set; }
}

public class Result
{
    public int Id { get; set; }
    public string OwnerId { get; set; }
    public string OwnerName { get; set; }
    public int CategoryId { get; set; }
    public string CategoryName { get; set; }
    public string Name { get; set; }
    public object Description { get; set; }
    public int NoOfMinutes { get; set; }
    public DateTime CreatedDate { get; set; }
    public object ModifiedDate { get; set; }
}

public class RootObject
{
    public Metadata Metadata { get; set; }
    public List<Result> Results { get; set; }
}
如何将整个事件映射到Xamarin API服务中,而不仅仅是将结果引用为活动,以获取数据并返回

这是更改整个数据结构之前的原始API:

public async List<Activities> GetActivities()
        {
            var httpClient = new HttpClient();

            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", "ACCCESS TOKEN HERE");

            var response = httpClient.GetStringAsync("https://XXX.azurewebsites.net/api/v1/Activities");

            JsonConvert.DeserializeObject<Activities>(response);
        }

api的返回对象是什么?如果返回对象的结构是Metadata:…,Results:[…]问题中的第一个json,则需要使用

JsonConvert.DeserializeObjectresponse


转换它

它会改变整个结构吗?元数据和结果结合在一起?是的。参考:@dcpartners我建议使用JsonProperty,答案如下:。这是一种更好的方法,可以确保它转换为您想要的类型您可能正在寻找Newtonsoft JSON文档: