【问题标题】:Parse json request in Xamarin.Android在 Xamarin.Android 中解析 json 请求
【发布时间】:2018-12-17 08:44:52
【问题描述】:

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

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

我的 json 响应是这样的:

[
  {
    "id": "21",
    "date": "2018-01-01",
    "name": "Name1"
  },
  {
    "id": "22",
    "date": "2018-01-02",
    "name": "Name2",
  }
]

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

所以我想获取每一行的每个 ID、日期和名称标签的值。 我尝试了 for each 循环,但没有成功...

有人可以帮我处理 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

提前谢谢你!

【问题讨论】:

  • newtonsoft json 怎么样?
  • 是的,我试过了,但没有理解...你能帮我处理 DataSet 和 DataTable 吗?这是,我不明白。

标签: c# json xamarin xamarin.android response


【解决方案1】:

你可以使用Json.netJsonConvert.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);

c#在线:https://dotnetfiddle.net/UybCQ1

如果你想DeserializeObjectDataTable 它也可以工作。

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

foreach(DataRow row in dt.Rows){
  Console.WriteLine(row["id"]);
}

【讨论】:

  • 有效!有什么方法可以获取行数吗?
  • 简单的方法你可以使用for loop来计算数组然后索引就是你的数字。dotnetfiddle.net/UybCQ1你可以将数字添加到你的模型中
  • 看起来像这样。 string jsonString2 = "[{\"id\": \"21\",\"date\": \"2018-01-01\",\"name\": \"Name1\"},{\"id\": \"22\",\"date\": \"2018-01-02\", \"name\": \"Name2\"}]";
  • 如果你的字符串想要包含"双引号另一种方式你需要在双引号之前添加\
  • 您能在 dotnetfiddle.net 上取消您的代码,以便我再看一下 for 循环吗?
猜你喜欢
  • 2018-10-27
  • 2019-05-03
  • 1970-01-01
  • 2018-02-17
  • 2013-08-27
  • 1970-01-01
  • 2022-08-18
  • 2012-08-13
  • 2012-01-13
相关资源
最近更新 更多