在JSON.stringify中使用变量

Cer*_*ler 7 javascript json node.js stringify

我在节点restful server中使用stringify来提供数据:

answer = JSON.stringify({activities: result}, null, '\t');
return answer
Run Code Online (Sandbox Code Playgroud)

其中result是一个js对象; 我收到了正确的输出:

{
"activities": [
    {
     "id": 1,
     "title": aaa
    },
    { 
     "id": 2,
     "title": bbb
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但现在我想在stringify函数的左边部分使用变量而不是固定字符串; 就像是:

var name = "activities";
answer = JSON.stringify({name: result}, null, '\t');
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为name成为字符串化对象中的固定字符串

SLa*_*aks 15

您需要使用索引符号来构建对象:

var name = ...;
var obj = {};
obj[name] = something;
Run Code Online (Sandbox Code Playgroud)

  • 使用ES6,您可以在对象文字赋值中执行此操作,例如`{[name]:something}` (2认同)

Sat*_*ish 6

如果您想要 JSON.stringify() 对象,请尝试以下操作:

var field = "my_field_name";

var obj = {};

obj[field] = value;

var myJSON = JSON.stringify(obj);
Run Code Online (Sandbox Code Playgroud)