_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/