JSON数据并使用变量获取/更改其中的属性

时间:2016-10-07 20:06:53

标签: javascript json api

首先,我不确定这个问题是否有意义。我会尽力解释。

我正在研究一个查看美国人口普查局信息的项目。我正在查看的对象部分如下所示:(请注意,这只是对象的一部分。)

Object {MTFCC: "G5020", OID: 207903717468543, GEOID: "13135050431", STATE:     
"13", COUNTY: "135"…}
AREALAND: 5416158
AREAWATER: 34463
B19013_001E: "45543"

我感兴趣的部分是:B19013_001E恰好是中位数家庭收入的代码。为了明确获得中位家庭收入,我会这样做:

response.features[1].properties.B19013_001E

一切正常,到目前为止。但是,我的问题如下:我想更改该代码以获得其他值。所以,如果个人想要查找median_male_age,其代码是B01002_002E,我不想在B01002_002E中硬编码如下:

response.features[1].properties.B01002_002E

上述行可行。但是我想要一些可以由变量确定的东西,这样我就不必在特殊代码中使用硬编码了。所以,我想要一个像这样的代码:(只是一个例子!)

var value = prompt("What do you want to look at: ")
//In this case value would be the special code like B01002_002E which the user enters.
console.log(response.features[1].properties.value)

每当我这样做时,我都没有收到任何信息。起初我以为我的类型不对,但我不相信这是问题所在。 (我尝试转换为数字并返回字符串等。)对此的任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

扩展我的评论。

首先,MDN在Working with objects上有一个很棒的文档。值得一读。

其次,对于您自己的启发, JSON 是字符串而不是对象,因此它的缩写 J ava S cript O 对象 N otation。你所拥有的通俗地称为 POJO P lain O ld J avascript O < /强> bject。它们是不同的。 :)

第三,特别是对于您的问题,您希望在accessing an object property通过变量时使用括号表示法。所以在这种情况下它将是:

console.log(response.features[1].properties[value])

希望这有帮助!