访问嵌套的json对象时的值替换

时间:2015-10-31 00:49:08

标签: javascript json node.js

这是我的json对象

{
  "a1": {
    "b1": {
      "name": "Tim",
      "status": "Completed"
     }
     "c1" {
       "field1": "name",
       "field2": "status"
     }
  }

我需要通过获取c1中的字段键来访问值Tim。 例如,我需要获取a1.c1.field1的值,它给出值name1,然后我需要通过a1.b1访问值tim。(a1.c1.field1的值) 我不知道该怎么做。有人可以给出实现这个目标的可能方法吗?

4 个答案:

答案 0 :(得分:0)

您的JSON有点偏差,所以在下面进行了更正。这是如何检索c1对象(在a1对象中)

中的field1值的示例
$(document).ready(function () {
    var json = {
        "a1":
        {
            "b1":
            {
                "name": "Tim",
                "status": "Completed"
            },
            "c1":
            {
                "field1": "name",
                "field2": "status"
            }
        }
    };


console.log(json.a1.b1.name); // returns Tim
// or
console.log(json["a1"]["b1"]["name"]); // returns Tim

});

这是你要找的吗?

答案 1 :(得分:0)

您可以使用方括号进行访问。根据您提供的数据,

var data = {
        "a1": {
            "b1": {
                "name": "Tim",
                "status": "Completed"
            },
            "c1":{
                "field1": "name",
                "field2": "status"
            }
    }
};

您可以通过访问来实现您的要求。

data.a1.b1[data.a1.c1.field1]

答案 2 :(得分:0)

显而易见的方法是使用括号表示法将a1.c1.field1用作属性访问器。

var obj = {
    "a1": {
        "b1": {
            "name": "Tim",
            "status": "Completed"
        },

        "c1": {
            "field1": "name",
            "field2": "status"
        }
    }
};

console.log(obj.a1.c1.field1); // 'name'
console.log(obj.a1.b1[obj.a1.c1.field1]); // 'Tim'

或者,更清晰,

var key = obj.a1.c1.field1;
var value = obj.a1.b1[key];
console.log(value); // 'Tim'

答案 3 :(得分:0)

var a1 = 
{
    "b1":
    {
        "name": "Tim",
        "status": "Completed"
    },
    "c1":
    {
        "field1": "name",
        "field2": "status"
    }
};
console.log(a1.b1[a1.c1.field1]);

也要在json中修复错误;)