_postData : function ()
{
var fieldName = "day";
var day = /*returns an object from the back end business service*/
var value = day.getValue();
if (value)
{
return {
fieldName : value
};
}
}
问题是,即使 fieldName 实际上是“day”,当返回并打印 JSON 负载时,我看到的字面意思是:
{
fieldName: "16"
}
因此,由于某种原因,正在打印变量的名称,而不是实际的字符串值。我想要的是:
{
day: "16"
}
最佳答案
这不是 JSON,而是 Javascript 对象文字。当您在 Javascript 对象文字中的属性左侧放置一个符号时,该符号将用作属性名称,而不是该名称的变量可能计算为的任何字符串。换句话说,{fieldName: 16}
完全等同于 {"fieldName": 16}
不要这样做:
return {
fieldName : value
};
你可以这样做:
var obj = {};
obj[fieldName] = value;
return obj;
在第二个中,如果 fieldName
是一个包含字符串 "foo"
的变量,那么生成的对象将类似于 {foo: 16}
关于javascript - 在 JavaScript 中生成 JSON 时,变量未被替换为值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13323168/