仅解析数组的第一个对象 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