Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有方法访问嵌套json的值并将其添加到嵌套对象之外_Javascript_Json_Typescript - Fatal编程技术网

Javascript 是否有方法访问嵌套json的值并将其添加到嵌套对象之外

Javascript 是否有方法访问嵌套json的值并将其添加到嵌套对象之外,javascript,json,typescript,Javascript,Json,Typescript,对不起,我想不出更好的词来表达我的问题 所以问题是,假设我有一个嵌套的json,出于某种原因,我想获取一个嵌套的键值对对象的值,并将其放在外部 我有 DataSource= [ { "a": 1, "name": "jack", "version": 1, "Id": "39da", "active": false, "userId": "jack_user", "pro

对不起,我想不出更好的词来表达我的问题

所以问题是,假设我有一个嵌套的json,出于某种原因,我想获取一个嵌套的键值对对象的值,并将其放在外部

我有

DataSource=  [
      {
        "a": 1,
        "name": "jack",
        "version": 1,
        "Id": "39da",
        "active": false,
        "userId": "jack_user",
        "properties": [
          {
            "id": 7080,
            "key": "country",
            "value": "in",
          },
    {
            "id": 7081,
            "key": "state",
            "value": "xyz",
          },
    ]}]
我想要:

 DataSource=  [
      {
        "a": 1,
        "name": "jack",
        "version": 1,
        "Id": "39da",
        "active": false,
        "userId": "jack_user",
    "country": "in"
        "properties": [
          {
            "id": 7080,
            "key": "country",
            "value": "in",
          },
    {
            "id": 7081,
            "key": "state",
            "value": "xyz",
          },
    ]}]
使用下面的代码,我可以迭代整个JSON。但是,我无法从属性数组中选择对象

 for (var i = 0; i < this.DataSource.length; i++) {
          var tempDataSource = this.DataSource;
          console.log(tempDataSource );
for(var i=0;i
您可以尝试下面我的代码片段

让obj=[{
“a”:1,
“姓名”:“杰克”,
“版本”:1,
“Id”:“39da”,
“主动”:假,
“用户ID”:“jack_用户”,
“财产”:[{
“id”:7080,
“关键”:“国家”,
“值”:“in”,
},
{
“id”:7081,
“密钥”:“状态”,
“值”:“xyz”,
},
]
}];
控制台日志('berfore',obj);
obj[0][obj[0]。属性[0]。键]=obj[0]。属性[0]。值;
log('after',obj);
您可以这样做。 这里我假设数据数组只有一个对象

const data = [
  {
    "a": 1,
    "name": "jack",
    "version": 1,
    "Id": "39da",
    "active": false,
    "userId": "jack_user",
    "properties": [
      {
        "id": 7080,
        "key": "country",
        "value": "in",
      },
      {
        "id": 7081,
        "key": "state",
        "value": "xyz",
      },
    ]
  }
]

data[0].properties.forEach(obj => {
  if (data[0][obj.key] == 'country') {
    data[0][obj.key] = obj.value
  }
})

console.log(data)
输出-

[
  {
    "a": 1,
    "name": "jack",
    "version": 1,
    "Id": "39da",
    "active": false,
    "userId": "jack_user",
    "properties": [
      {
        "id": 7080,
        "key": "country",
        "value": "in"
      },
      {
        "id": 7081,
        "key": "state",
        "value": "xyz"
      }
    ],
    "country": "in"
  }
]

你试过什么,它到底有什么问题?还有为什么只在“国家”:“在”中,而不是在“州”:“xyz”?我能够在Json上迭代并获取我想要的任何值,但我不知道如何在外部显示该值。我只需要根据条件来显示多个值。基本上,我想筛选key=='country',然后只在外部显示它