仅解析数组的第一个对象 JSON
Parsing Only the First Object of Array JSON
我在 JSON 中有以下文本结构:
{
"Results":{
"Burger King":{
"Location":"New York",
"Address":"Avenue Dalmatas, 20"
},
"Mcdonalds":{
"Location":"Los Angeles",
"Address":"Oscar Street, 50"
}
}
}
我设法获得了城市和地址结果,但为此我需要在代码中提及餐厅的名称以获取令牌字符串。
Dim JSON As String = **json here**
Dim token As JToken
token = JObject.Parse(JSON.ToString())
Dim data = token.SelectToken("Results").SelectToken("Burger King").SelectToken("Location")
我的问题是,例如,如何在列表框中仅列出餐厅(汉堡王、麦当劳等)?所以我可以添加一些功能来检查用户选择的地址和城市,我知道并且已经知道该怎么做,但是获得仅包含餐馆名称的令牌对我来说很困难。例如,如果我有一个新的餐厅名称,我不想在代码中手动包含。我尝试了很多不同的方法,但我最后使用的方法如下:
Dim data = token.SelectToken("Results").SelectToken(0) 'i thought it would print 'Burger King'
'or this one
Dim data = token.SelectToken("Results")(0).ToString()
我已经尝试了一些 'For Each' 循环代码,但我也没有成功。我已经研究了无数种方法来做到这一点,但没有任何效果。我相信这很简单,我要么忽略要么完全忘记。请给我一盏灯!谢谢
我可以 post 为您编写 c# 代码,如果您需要,将其翻译成 VB 会更容易
var jsonObject= JObject.Parse(json);
List<string> restaurantNames= ((JObject)jsonObject["Results"]).Properties()
.Select(x=>x.Name).Distinct().ToList();
结果
Burger King
Mcdonalds
我在 JSON 中有以下文本结构:
{
"Results":{
"Burger King":{
"Location":"New York",
"Address":"Avenue Dalmatas, 20"
},
"Mcdonalds":{
"Location":"Los Angeles",
"Address":"Oscar Street, 50"
}
}
}
我设法获得了城市和地址结果,但为此我需要在代码中提及餐厅的名称以获取令牌字符串。
Dim JSON As String = **json here**
Dim token As JToken
token = JObject.Parse(JSON.ToString())
Dim data = token.SelectToken("Results").SelectToken("Burger King").SelectToken("Location")
我的问题是,例如,如何在列表框中仅列出餐厅(汉堡王、麦当劳等)?所以我可以添加一些功能来检查用户选择的地址和城市,我知道并且已经知道该怎么做,但是获得仅包含餐馆名称的令牌对我来说很困难。例如,如果我有一个新的餐厅名称,我不想在代码中手动包含。我尝试了很多不同的方法,但我最后使用的方法如下:
Dim data = token.SelectToken("Results").SelectToken(0) 'i thought it would print 'Burger King'
'or this one
Dim data = token.SelectToken("Results")(0).ToString()
我已经尝试了一些 'For Each' 循环代码,但我也没有成功。我已经研究了无数种方法来做到这一点,但没有任何效果。我相信这很简单,我要么忽略要么完全忘记。请给我一盏灯!谢谢
我可以 post 为您编写 c# 代码,如果您需要,将其翻译成 VB 会更容易
var jsonObject= JObject.Parse(json);
List<string> restaurantNames= ((JObject)jsonObject["Results"]).Properties()
.Select(x=>x.Name).Distinct().ToList();
结果
Burger King
Mcdonalds