我在JavaScript中有一个JSON对象,希望从字符串变量访问一个键

我在JavaScript中有一个JSON对象,希望从字符串变量访问一个键,javascript,html,json,string,Javascript,Html,Json,String,在JavaScript中,我有一个JSON对象。这个JSON对象有很多键,我需要使用点运算符访问一个作为字符串存储在中的键,但不确定如何做到这一点 例如,如果我有以下JSON代码: "values" : [ { "prop0" : "h", "prop1" : "pizza", "prop2" : "2014-06-24T15:58:50Z", "prop3" : "" }, { "prop0" : "paa",

在JavaScript中,我有一个JSON对象。这个JSON对象有很多键,我需要使用点运算符访问一个作为字符串存储在中的键,但不确定如何做到这一点

例如,如果我有以下JSON代码:

"values" : [ { "prop0" : "h",
        "prop1" : "pizza",
        "prop2" : "2014-06-24T15:58:50Z",
        "prop3" : ""
      },
      { "prop0" : "paa",
        "prop1" : "cat",
        "prop2" : "2014-06-24T15:58:16Z",
        "prop3" : "mouse"
      }
    ]
我想访问prop1,我将使用以下JavaScript代码:

values[0].prop1;
只要我知道这个属性名为prop1,这就行了。但我不知道我的属性将被称为什么。我有一个字符串,在本例中,它表示什么是prop1或当前属性是什么,但是我不知道如何将点运算符与字符串一起使用

我想要一些像:

values[0].myString;
但这是行不通的


有什么方法可以实现我想要实现的目标吗?

使用括号表示法

值[0]。myString
相当于
值[0]['myString']
:)

例如,

var obj = { a : 1 };
obj.a // returns 1
var a_string = 'a';
obj[a_string] // returns 1

一般来说,点表示法看起来更简洁,但括号表示法恰恰适合于此目的。

您可以将javascript对象作为关联数组或字典来处理,方法是向其传递一个键以进行查找:

值[0][myString]

在下面的代码中

var myString = 'prop1';
var val1 = values[0][myString];
var val2 = values[0].prop1;

val1
val2
都有一个值
'pizza'

在Javascript中,您可以使用点表示法(您一直使用的方式)和平括号表示法(即[])访问属性,因此您应该能够像这样访问它:


值[0][myString]

,但前提是
myString
实际上是属性的名称。我认为问题在于查找一个属性,该属性的名称在一个变量中。对,我只是展示了你可以传递一个字符串,就像字典查找一样,使用一个文本,这意味着传递一个字符串变量将按照他所期望的方式工作。不过添加了一个示例。