【问题标题】:How to read through or navigate through a json object? [closed]如何阅读或浏览 json 对象? [关闭]
【发布时间】:2021-08-20 08:26:38
【问题描述】:

我有一个这样的 JSON 对象:

0:
    DnsAddress: "Admin DNS Address"
    IsGroup: true
    Role: Array(1)
        0:
        Assigned: { TotalUsers: 2, TotalGroups: 1 }
        Description: "Admin Role"
        Id: 3192
        Location: null
        Name: "Admin_Role"
        Permissions: Array(16)
            0: { Category: null, Resource: "Dashboard", Action: "FULL_ACCESS" }
            1: { Category: null, Resource: "Alerts", Action: "FULL_ACCESS" }
            2: { Category: null, Resource: "Inventory", Action: "FULL_ACCESS" }
            3: { Category: null, Resource: "Reports", Action: "FULL_ACCESS" }
            4: { Category: null, Resource: "OS Update", Action: "FULL_ACCESS" }
            5: { Category: null, Resource: "Software Update", Action: "FULL_ACCESS" }
            6: { Category: null, Resource: "Certificate Distribution", Action: "FULL_ACCESS" }
            7: { Category: null, Resource: "Groups and Permissions", Action: "FULL_ACCESS" }
            8: { Category: null, Resource: "General", Action: "FULL_ACCESS" }
            9: { Category: null, Resource: "KPI Data Retention", Action: "FULL_ACCESS" }
            10: { Category: null, Resource: "Email", Action: "FULL_ACCESS" }
            11: { Category: null, Resource: "Enhanced Monitor Inventory", Action: "FULL_ACCESS" }
            12: { Category: null, Resource: "Cloud Interfaces", Action: "FULL_ACCESS" }
            13: { Category: null, Resource: "Supplied Network", Action: "FULL_ACCESS" }
            14: { Category: null, Resource: "External NMS", Action: "FULL_ACCESS" }
            15: { Category: null, Resource: "Email Alert Notification", Action: "FULL_ACCESS" }
        ProductType: (6)["SMART_HOPPING_INFRASTRUCTURE", "SUPPLIED_NETWORK", "INTELLIBRIDGE_ENTERPRISE", "CAREEVENT", "UNKNOWN"]
        TotalRecords: 0            
    SourceType: "Admin Source Type"
    UserId: "System Account"
        

我需要读取权限数组 [16] 并获取他们的操作,如果它是否为完全访问权限,并在该条件下启用某些功能(完全访问权限或无访问权限或读取权限)。

我该怎么做?

我从 API 获取这个 JSON 作为字符串。

【问题讨论】:

  • x = [1,2,3]为例。你知道如何只记录2吗?

标签: javascript json angular typescript api


【解决方案1】:

假设你的 json 看起来像这样:

[
    {
        "DnsAddress": "Admin DNS Address",
        "IsGroup": true,
        "Role": [
            {
                "Assigned": {
                    "TotalUsers": 2,
                    "TotalGroups": 1
                },
                "Description": "Admin Role",
                "Id": 3192,
                "Location": null,
                "Name": "Admin_Role",
                "Permissions": [
                    {
                        "Category": null,
                        "Resource": "Dashboard",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Alerts",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Inventory",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Reports",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "OS Update",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Software Update",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Certificate Distribution",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Groups and Permissions",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "General",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "KPI Data Retention",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Email",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Enhanced Monitor Inventory",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Cloud Interfaces",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Supplied Network",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "External NMS",
                        "Action": "FULL_ACCESS"
                    },
                    {
                        "Category": null,
                        "Resource": "Email Alert Notification",
                        "Action": "FULL_ACCESS"
                    }
                ],
                "ProductType": [
                    "SMART_HOPPING_INFRASTRUCTURE",
                    "SUPPLIED_NETWORK",
                    "INTELLIBRIDGE_ENTERPRISE",
                    "CAREEVENT",
                    "UNKNOWN"
                ],
                "TotalRecords": 0
            }
        ],
        "SourceType": "Admin Source Type",
        "UserId": "System Account"
    }
]

您可以使用以下代码浏览:

const users = JSON.parse(jsonInputs);

for(const user of users){
    for(const role of user.Role){
        for(const {Resource, Action} of role.Permissions){
            console.log(Resource, Action);
            // compute Resource and Action here
             }
      }
}

【讨论】:

    【解决方案2】:

    如果收到一个字符串,首先解析 JSON 是 JSON.parse(obj)。然后,您可以使用诸如 forEach 或 map 之类的方法来处理常规数组。看你需要什么

    【讨论】:

      猜你喜欢
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多