在 JSON.stringify 中使用变量

Posted

技术标签:

【中文标题】在 JSON.stringify 中使用变量【英文标题】:use a variable in JSON.stringify 【发布时间】:2014-03-09 15:22:13 【问题描述】:

我在我的节点 restful 服务器中使用 stringify 来提供数据:

answer = JSON.stringify(activities: result, null, '\t');
return answer

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


"activities": [
    
     "id": 1,
     "title": aaa
    ,
     
     "id": 2,
     "title": bbb
    
  ]

但现在我想在 stringify 函数的左侧使用变量而不是固定字符串;类似:

var name = "activities";
answer = JSON.stringify(name: result, null, '\t');

这不起作用,因为名称在字符串化对象中变成了固定字符串

【问题讨论】:

【参考方案1】:

您需要使用索引器表示法构建对象:

var name = ...;
var obj = ;
obj[name] = something;

【讨论】:

使用 ES6,您可以在对象字面量赋值中进行操作,例如 [name]: something 将答案写在问题的语法中以方便用户阅读。【参考方案2】:

您也可以将new 与匿名函数一起使用:

answer = JSON.stringify(new function() this[name] = result; , null, '\t');

【讨论】:

【参考方案3】:

如果你想要 JSON.stringify() 对象,那么试试这个:

var field = "my_field_name";

var obj = ;

obj[field] = value;

var myJSON = JSON.stringify(obj);

【讨论】:

以上是关于在 JSON.stringify 中使用变量的主要内容,如果未能解决你的问题,请参考以下文章

JSON stringify 中的变量在 Rest 请求中不起作用

将 JSON.stringify 与 TypeScript getter/setter 结合使用

Ajax

json.stringify 对象并重命名 json 中的变量

JSON.stringify深拷贝的缺点

JavaScript 中 JSON.stringify 中的第二个参数