c# - 从 .json URL 获取数据 [Xamarin]
问题描述
我目前正在开发一个应用程序来从 URL 中获取 .json 数据并将其显示给 Xamarin 上的 ListView。
这是 URL:https ://www.mrniato.com/mysql_to_json.php 我想获取所有的“固件”。
我需要有关使用哪些代码在 ListView 上显示它们的帮助。
我已经尝试了一些在互联网上找到的代码,但没有成功......
谢谢你的回答。
解决方案
您可以使用HttpClient来请求您的数据,这是Get
来自服务器的请求的简单片段:
using (var client = new HttpClient()){
HttpResponseMessage response = await client.GetAsync(requestUrl);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
string content = await response.Content.ReadAsStringAsync();
Grab grab = JsonConvert.DeserializeObject<Grab>(content);
List<Grab.Date> dates = grab.PS4_Beta;
foreach (var item in dates)
{
Log.Error("Firmware", "==" + item.Firmware);
}
}
这content
是您的服务器返回给您的。您可以使用Newtonsoft.Json nuget 将其转换为您的自定义数据模型。
例如模型如下:
class Grab
{
[JsonProperty(PropertyName = "PS4_Beta")]
public List<Data> PS4_Beta{ get; set; }
public class Data
{
[JsonProperty(PropertyName = "Firmware")]
public string Firmware { get; set; }
[JsonProperty(PropertyName = "Size")]
public string Size { get; set; }
[JsonProperty(PropertyName = "MD5")]
public string MD5 { get; set; }
}
}
最后,您可以通过上面的 JKL 链接使用 ListView 显示。
列表显示 :
Grab grab = JsonConvert.DeserializeObject<Grab>(content);
List<Grab.Date> dates = grab.PS4_Beta;
ObservableCollection<string> FirmwareList = new ObservableCollection<string>();
foreach (var item in dates)
{
FirmwareList.Add(item.Firmware);
}
listView.ItemSource = FirmwareList ;
推荐阅读
- python - 数组的符号导数
- mysql - 1822 (HY000): 添加外键约束失败
- html - 网站未重定向到节点 js 服务器
- math - 给定行列式 a 和 b 时如何在 2x2 矩阵中查找元素
- tableau-api - Tableau 地理制图不显示整个地图
- android - 一个 LiveData 返回 null
- java - 为什么包装器整数值和实际 int 值在变量查看器中显示不同(在 Netbeans 调试模式下)?
- discord - 如何从机器人脚本向频道发送游戏邀请(丰富的存在游戏邀请)?
- python - 如何用 Numpy 而不是 Pandas 计算满足条件的总和
- python - Python for 循环 - 我可以从循环内的条件集中跳过多次迭代吗?