如何读取或导航json对象



我有一个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]并获取它们的Action,如果它是否为完全访问权限,并在该条件下启用某些功能(完全访问权限或无访问权限或读取访问权限(。

我该如何处理?

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

让我们假设您的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
}
}
}

如果收到一个字符串,首先要解析JSON的是JSON.parse(obj(。然后,使用forEach或map等方法处理常规数组。根据您需要

最新更新