在 Xamarin.Android 中解析 json 请求
Posted
技术标签:
【中文标题】在 Xamarin.Android 中解析 json 请求【英文标题】:Parse json request in Xamarin.Android 【发布时间】: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 吗?这是,我不明白。 【参考方案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
如果你想DeserializeObject
到DataTable
它也可以工作。
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 循环吗?以上是关于在 Xamarin.Android 中解析 json 请求的主要内容,如果未能解决你的问题,请参考以下文章
发生一个或多个错误。 (无法解析 TLS 数据包头)C# Xamarin Android Project Visual Studio
Xamarin.Android splash页面瞬间响应_避免APP启动闪白屏
Xamarin android:天蓝色推送通知的连接字符串无效