我需要将JSON对象发送到需要该属性的服务器 是嵌套的。例如,数据对象可以嵌套2级深度。但是,不能简单地直接声明对象:
var foo = {};
foo.bar.bartwo = "data"; //Uncaught TypeError
我目前正试图通过手动创建嵌套对象图层来绕过这一点。
var foo = {};
foo.bar = {};
foo.bar.bartwo = "data"; //Successful
但是,如果对象需要多级嵌套,这很快就会失控。
在Javascript或Jquery中是否有更好的方法来处理这个问题(通过简单地打高尔夫第二个代码示例不起作用)?
澄清:解决方案应该能够允许直接访问嵌套属性,没有,因此必须创建所有中间属性。
答案 0 :(得分:0)
没有定义嵌套对象,即foo.bar = {}; 你不能使用或赋值给它 必须首先定义javascript对象才能使用它 否则它会给你'undefined'错误,即foo.bar未定义
答案 1 :(得分:0)
创建一个执行此操作的小方法
function nested(x, y){
nestedA="";
parts = x.split('.');
for(i=0; i<parts.length; i++) {
nestedA += parts[i];
eval(nestedA + ' = {}');
nestedA += '.';
}
eval(nestedA.slice(0,-1)+ '= "'+y+'"');
}
nested('foo.bar.bartwo', "data");