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

10-11 03:52