2016-06-09 146 views
-1

我想向JSON添加一个字段。我确实有一个工作解决方案,但它很丑(使用eval)。有没有更好的方法来添加一个字段?将字段添加到JSON

var json = {}; 
var id = "test"; 
eval("json." + id + " = 5;"); 
console.log(json.test); 

更新:对不起,我的问题有点不清楚。 我想使用变量id,它具有新字段的值。

干杯, 伯恩哈德

+0

'JSON [ID] = 5'。而且,这是一个JavaScript对象,而不是JSON,不要让它们混淆! http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation –

+1

这不是JSON,这是一个javascript对象。您似乎想要添加具有特定值的属性。没有冒犯,但在网上搜索应该很容易产生有用的结果。我们是否缺少一些信息? – Jeroen

+1

请看看这里:http://stackoverflow.com/questions/4968406/javascript-property-access-dot-notation-vs-brackets –

回答

3

您可以使用如下代替:

使用这样的:

json[id] = 5; 

因此,你的情况:

var json = {}; 
var id = "test"; 
json[id] = 5; 
console.log(json.test); //will print 5 
// OR 
console.log(json['test']); //will print 5 
1

您可以添加这样的:

var json = {}; 
json.test = 5; 
console.log(json.test); 

var json = {}; 
json["test"] = 5; 
console.log(json.test); 

希望它能帮助:)

0

您可以使用

var json = {}; 
var id = "test"; 
eval("json." + id + " = 5;"); 
console.log(json.test); 

var json2 = {}; 
json2.test = 5; 
console.log(json2.test); 

或该

var json3 = {}; 
json3["test"] = 5; 
console.log(json3.test); 

第一个例子是不希望的。

+1

第一个例子应该不存在。 – AD7six

+0

是的。第一个是不可取的。 –