我正在尝试为json结构添加一个值,如:
saveChamp.test = {"type":"","text":""};
没关系,但我想要“测试”,如:var test = $('blablabla').val();
在我的示例中,它不会获取test的值,但会创建一个名为test的条目。这不是我想要的。
帮助?
编辑:
var saveChamp = new Object();
var test = "Field1";
saveChamp.test = {"type":"ok","text":"kok"};
我希望该脚本在saveChamp中创建一个名为Field1的条目(ma变量test的值)。
答案 0 :(得分:1)
啊,在这种情况下,在你编辑之后很明显你需要什么。
javascript中的每个对象都可以视为关联数组,并且可以通过变量的值来调用数组的属性。
var saveChamp = new Object();
var test = "Field1";
saveChamp[test] = {"type":"ok","text":"kok"};
这与:
相同saveChamp["Field1"] = {"type":"ok","text":"kok"};
这将做你想要的,因为字段的名称作为变量字符串传递。
答案 1 :(得分:0)
不确定我完全理解你,因为这段代码没有多大意义。
JSON表示Javascript Object Notation。
它用于通过纯文本传输变量。你不需要这个,因为你可以通过代码传输数据。
离。 1:
saveChamp.test = $('blablabla')).val();
将使对象saveChamp具有属性测试,其值为:$('blablabla'))。val();
离。 2:
saveChamp.test = {"type":"blablabla","text":$('blablabla')).val()};
希望在saveChamp的test属性中创建一个对象。 这实际上意味着:
saveChamp.test.type = "blabalbla";
saveChamp.test.text = $('blablabla')).val();
修改强>
我做了一个新答案,但是把它留在这里,因为它们都非常不同,而且都很有用。
答案 2 :(得分:0)
尝试使用括号表示法:
var test = $('blablabla').val();
saveChamp[test] = {
"type": "",
"text": ""
};
答案 3 :(得分:-1)
我看到你是如何设置你的值并设置是一个JSON对象,但如果这是你正在使用它的确切代码,则缺少“#”以通过Id获取元素并且还有一个额外的paren;
Trey使用:
var test = $('#blablabla').val();
saveChamp.test = {"type": "blablabla","text": test};