1

我正在尝试向 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 变量测试的值)。

4

4 回答 4

1

啊,在这种情况下,在您编辑之后,您需要什么就很明显了。

javascript中的每个对象都可以被视为一个关联数组,并且可以通过变量的值来调用数组的属性。

var saveChamp = new Object();
var test = "Field1";
saveChamp[test] = {"type":"ok","text":"kok"};

这与以下内容相同:

saveChamp["Field1"] = {"type":"ok","text":"kok"};

这将做你想要的,因为字段的名称作为变量字符串传递。

于 2012-07-19T12:58:16.060 回答
0

不确定我是否完全理解你,因为这段代码没有多大意义。

JSON 表示Javascript Object Notation

它用于通过纯文本传输变量。您不需要这个,因为您可以通过代码传输数据。

前任。1:

saveChamp.test = $('blablabla')).val();

将使对象 saveChamp,有一个属性测试,它有一个值:$('blablabla')).val();

前任。2:

saveChamp.test = {"type":"blablabla","text":$('blablabla')).val()};

有望从 saveChamp 的测试属性中创建一个对象。这实际上意味着:

saveChamp.test.type = "blabalbla"; 
saveChamp.test.text = $('blablabla')).val();

编辑

我做了一个新的答案,但把这个留在这里,因为它们都非常不同,而且都很有用。

于 2012-07-19T12:52:30.870 回答
0

尝试使用括号表示法:

var test = $('blablabla').val();
saveChamp[test] = {
    "type": "",
    "text": ""
};
于 2012-07-19T12:55:06.707 回答
-1

我看到您如何尝试设置您的值,并且设置为 JSON 对象,但如果那是您使用的确切代码,则缺少“#”来通过 Id 获取元素,并且有一个额外的括号;

特雷使用:

var test = $('#blablabla').val(); 

saveChamp.test = {"type": "blablabla","text": test};
于 2012-07-19T12:56:21.167 回答