当前位置: 首页 > 面试题库 >

访问JToken中的所有项目

徐涵亮
2023-03-14
问题内容

我有一个像这样的json块:

{
    "ADDRESS_MAP":{

        "ADDRESS_LOCATION":{
            "type":"separator",
            "name":"Address",
            "value":"",
            "FieldID":40
        },
        "LOCATION":{
            "type":"locations",
            "name":"Location",
            "keyword":{
                "1":"LOCATION1"
            },
            "value":{
                "1":"United States"
            },
            "FieldID":41
        },
        "FLOOR_NUMBER":{
            "type":"number",
            "name":"Floor Number",
            "value":"0",
            "FieldID":55
        },
        "self":{
            "id":"2",
            "name":"Address Map"
        }
    }
}

我如何获取此令牌包含的所有关键项目。例如,从上面的代码中,我希望具有“ ADRESS_LOCATION”,“ LOCATION”,“
FLOOR_NUMBER”和“ self”。


问题答案:

您可以将JToken转换为JObject,然后使用Properties()方法获取对象属性的列表。从那里,您可以轻松获得名称。

像这样:

string json =
@"{
    ""ADDRESS_MAP"":{

        ""ADDRESS_LOCATION"":{
            ""type"":""separator"",
            ""name"":""Address"",
            ""value"":"""",
            ""FieldID"":40
        },
        ""LOCATION"":{
            ""type"":""locations"",
            ""name"":""Location"",
            ""keyword"":{
                ""1"":""LOCATION1""
            },
            ""value"":{
                ""1"":""United States""
            },
            ""FieldID"":41
        },
        ""FLOOR_NUMBER"":{
            ""type"":""number"",
            ""name"":""Floor Number"",
            ""value"":""0"",
            ""FieldID"":55
        },
        ""self"":{
            ""id"":""2"",
            ""name"":""Address Map""
        }
    }
}";

JToken outer = JToken.Parse(json);
JObject inner = outer["ADDRESS_MAP"].Value<JObject>();

List<string> keys = inner.Properties().Select(p => p.Name).ToList();

foreach (string k in keys)
{
    Console.WriteLine(k);
}

输出:

ADDRESS_LOCATION
LOCATION
FLOOR_NUMBER
self


 类似资料:
  • 问题内容: 如何使用jQuery访问asp.net控件 不会工作。 问题答案: 上面的aspx代码在页面上呈现时变为 这是因为.net控件所在的主控信息和控制信息被预先放置,这使我们编写选择器变得有些棘手。 您有几种选择。这绝不是全面的,但我会尝试一下。 选项1: 使用-推荐,但不是。如果可以的话,我会尽量避免写作。主要原因是,您只能在页面中使用它,而不能在外部文件中使用它。 选项2: 使用属性选

  • 我想做一个像相册一样的lib改编成Android Q 由于范围存储,不推荐使用; 我们不能直接通过这样的路径读取文件 没有URI之类的值,因此我无法通过ContentProvider获取图片。 我们可以通过这种方式只打开一个图片(下面的代码),并且在回调中接收到一个URI; 但是我想访问所有的图片,那么,我如何扫描所有的图片在Android Q?

  • 问题内容: 有没有一种方法可以通过sql语句或vba代码从访问文件中返回所有表?“我不知道桌子的名字” 例如,当您希望表中包含所有字段时,无论字段名称如何,都使用“ *”。 但是如何获得所有表? 问题答案: 这将带回MS Access数据库中的所有表(包括链接表) 它还包含Sys表,因此您可能要排除以 MSys 开头的表 __ 看一下 使用MSysObjects 选择“表” AS [表],MSys

  • 我已经在一台远程Ubuntu机器上安装了MySQL服务器。用户在表中定义如下: 我可以使用标准的客户端,通过用户从同一远程计算机命令行界面进行访问。现在我想允许internet上每台主机的根用户访问,所以我尝试添加以下行(它与上一个转储中的第一行完全重复,除了列): 但我个人电脑上的客户继续告诉我(我遮住了服务器IP): SQL错误(2003):无法连接到'46.x.x.x'上的MySQL服务器(

  • JToken SSO 令牌单点登录集成插件,为多个系统的单点登录集成提供一键登录和一键注销的功能,以 API 接口方式提供集成,只需编写简短的几行集成代码,集成开发方便。系统间以共享密钥文件,向客户端用户发放令牌,采用私钥加密和公钥解密的方式进行传递和认证。

  • 问题内容: 我正在尝试访问所有显示的URL,但它首先访问的不是全部 Google搜索网址https://www.google.co.uk/search?q=Rashmi&oq=Rashmi&aqs=chrome..69i57j69i60l3.6857j0j1&sourceid=chrome&ie=UTF-8#q=Rashmi+Custom+Tailors 问题答案: 您的问题是使用以下方法导致的