简体   繁体   English

如何在 node.js 中访问 JSON object 的动态键值?

[英]How to access dynamic key values of a JSON object in node.js?

I'm facing issues in retrieving the JSON data.我在检索 JSON 数据时遇到问题。

Here am getting the JSON with dynamic keys.这里我得到了带有动态键的 JSON。 And I need to access that dynamic key's values.我需要访问该动态键的值。 The dynamic key is coming from URL and am fetching that key's data from DB.动态密钥来自 URL 并且正在从数据库中获取该密钥的数据。

Here is my sample data.这是我的示例数据。

let roleData = [
  {
    "assetCategory": {
       "canCreate": false,
       "canView": false,
       "canUpdate": false,
       "canDelete": false,
       "isMenu": false,
       "parent": "settings"
     }
  }
]

In the above JSON, I've got assetCategory object.在上面的 JSON 中,我有assetCategory object。 But this value is completely dynamic.但是这个值是完全动态的。 I might get other values too in the place of assetCategory .我也可能会得到其他值来代替assetCategory So without knowing this key, it's getting difficult for me to access the data.所以在不知道这个密钥的情况下,我很难访问数据。

Is there any way to access this dynamic object?有什么方法可以访问这个动态 object?

You should use Object.keys(...) : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys您应该使用Object.keys(...)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

For example:例如:

const a = [
  {
    "assetCategory": {
       "canCreate": false,
       "canView": false,
       "canUpdate": false,
       "canDelete": false,
       "isMenu": false,
       "parent": "settings"
     }
  }
];

const name = Object.keys(a[0])[0]; // --> "assetCategory"
console.log(a[0][name]) // --> {"canCreate": false, ...}

 let data = [ { "assetCategory": { "canCreate": false, "canView": false, "canUpdate": false, "canDelete": false, "isMenu": false, "parent": "settings" } } ] let unknownNames = data.map( item => Object.keys(item)) // returns ['assetCategory'] //Returns array of all the unknown names console.log(unknownNames);

you can get all keys by Object.keys(data[0].assetCategory) .您可以通过Object.keys(data[0].assetCategory)获取所有密钥。 and then data[0].assetCategory[varWithKeyValue] or if it's dynamic data[0].assetCategory['can' + 'Create']然后data[0].assetCategory[varWithKeyValue]或者如果它是动态data[0].assetCategory['can' + 'Create']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM