假设我有如下的json数据:
data = {"id":1,
"name":"abc",
"address": {"streetName":"cde",
"streetId":2
}
}现在,我从这个json数据中获取要访问的字段,比如:fields = ["id", "name", "address.streetName"]
如何才能以最有效的方式从给定的json数据访问第三个字段(address.streetName)?data.fields[2]不起作用
一种可能是我使用data[address][streetName]循环构造for字符串并进行求值,但是有没有什么有效的方法呢?
发布于 2012-02-27 18:32:02
JavaScript:
function getProperty(json, path) {
var tokens = path.split(".");
var obj = json;
for (var i = 0; i < tokens.length; i++) {
obj = obj[tokens[i]];
}
return obj;
}
var data = {
id: 1,
name: "abc",
address: {
streetName: "cde",
streetId: 2
}
};
var fields = ["id", "name", "address.streetName"];
for (var i = 0; i < fields.length; i++) {
var value = getProperty(data, fields[i]);
console.log(fields[i] + "=" + value);
}输出:
id=1
name=abc
address.streetName=cdehttps://stackoverflow.com/questions/9463233
复制相似问题