如何在GridView中打印JSON值?(C#/VS2017环境)
解决JSON解析并绑定Name到GridView的问题
我来帮你搞定这个问题!首先得理清你的JSON结构——你的Coins字段是个二维数组,每个元素都是只包含一个对象的子数组,这也是你之前没法直接提取单个Name值的原因。下面是具体的实现步骤:
1. 解析JSON并提取Name值
你已经完成了JSON的下载和JObject的解析,接下来只需要遍历二维数组,把每个子数组里的Name提取出来:
string link = @"http://alexander.*************/test.php"; string json = new WebClient().DownloadString(link); JObject jObject = JObject.Parse(json); // 获取Coins对应的二维数组 JArray coinsArray = (JArray)jObject["Coins"]; // 创建列表存储所有Name List<string> nameList = new List<string>(); // 遍历每个子数组 foreach (JArray subArray in coinsArray) { // 取出子数组里的第一个对象 JObject coinItem = (JObject)subArray[0]; // 提取Name值并加入列表 string coinName = coinItem["Name"].ToString(); nameList.Add(coinName); } // 转成你需要的myItems数组 string[] myItems = nameList.ToArray();
2. 绑定到GridView
根据你提到的ArrayAdapter,推测你可能是在Xamarin环境下开发,绑定代码可以这样写:
// 初始化ArrayAdapter,把myItems数组传入 ArrayAdapter<string> adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, myItems); // 绑定到你的GridViewCoins GridViewCoins.Adapter = adapter;
如果是WinForms的DataGridView,也可以用DataTable来绑定,更直观:
DataTable dt = new DataTable(); dt.Columns.Add("Coin Name"); // 给列起个名字 foreach (string name in myItems) { dt.Rows.Add(name); } // 绑定到DataGridView yourDataGridView.DataSource = dt;
这样就能把两个Name值("007"和"1337")成功显示在GridView里啦!
内容的提问来源于stack exchange,提问作者user9198450
相关产品推荐
相关产品推荐

