javascript - 在 JavaScript 中生成 JSON 时,变量未被替换为值?

标签 javascript json variables

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

相关文章:

javascript - 是否可以覆盖内联 css 并使内联 css 属性不起作用?

javascript - 理解 RegisterStartupScript : How often will the JavaScript code be called?

javascript - 如何使用 Marionette 的 ItemView 渲染集合?

android - 使用 gson 库将自定义对象的 ArrayList 转换为 JSON,检索这些自定义对象时出现 ClassCastException

c# - 声明变量只是为了使代码易于阅读,编程最佳实践 C#

javascript - 具有多个条件的 javascript if 语句是否测试所有条件?

php - Android json php mysql 仅返回单行

javascript - 按字段压缩 Json 对象 JQuery/JS

string - swift 中定义字符串变量的两种方式

python - 从另一个文件导入变量?