在Xamarin.Android中解析json请求

Jon*_*TFL 3 c# json response xamarin.android xamarin

我搜索了很长时间但没有成功......

我想解析Xamarin.Android中API的json响应.

我的json响应是这样的:

[
  {
    "id": "21",
    "date": "2018-01-01",
    "name": "Name1"
  },
  {
    "id": "22",
    "date": "2018-01-02",
    "name": "Name2",
  }
]
Run Code Online (Sandbox Code Playgroud)

如您所见,它包含2行.行的数量可以改变.有时有6行但有时只有2行......

所以我想获得每一行的每个id,日期和名称标签的值.我尝试了每个循环,但没有成功...

有人可以帮我使用DataSet和DataTable吗?

我看到了这段代码,但是DataSet和DataTable出错了:

string json = @"{
  'Table1': [
    {
      'id': 0,
      'item': 'item 0'
    },
    {
      'id': 1,
      'item': 'item 1'
    }
  ]
}";

DataSet dataSet = JsonConvert.DeserializeObject<DataSet>(json);

DataTable dataTable = dataSet.Tables["Table1"];

Console.WriteLine(dataTable.Rows.Count);
// 2

foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine(row["id"] + " - " + row["item"]);
}
// 0 - item 0
// 1 - item 1
Run Code Online (Sandbox Code Playgroud)

先感谢您!

D-S*_*hih 5

你可以使用Json.net JsonConvert.DeserializeObject函数

创建一个ObjModel类来携带您的json数据.

public class ObjModel
{
    [JsonProperty("id")]
    public string Id { get; set; }

    [JsonProperty("date")]
    public string Date { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }
}

ObjModel[] datas = JsonConvert.DeserializeObject<ObjModel[]>(jsonData);
Run Code Online (Sandbox Code Playgroud)

c#online:https://dotnetfiddle.net/UybCQ1

如果你想DeserializeObjectDataTable它可以工作了.

DataTable  dt = JsonConvert.DeserializeObject<DataTable>(jsonString2);

foreach(DataRow row in dt.Rows){
  Console.WriteLine(row["id"]);
}
Run Code Online (Sandbox Code Playgroud)