首页 > 解决方案 > 如何在 JSON stringify 中使用变量作为字段名称?

问题描述

我希望能够使用变量作为字段名称来动态创建 JSON 对象。

我已经研究出如何使用变量设置字段值,$()但它不适用于字段名称。

    const body: string = JSON.stringify({
      '__metadata': {
        'type': listItemEntityTypeName
      },
      `${FIELD_NAME}`: `${FIELD_VALUE}`
    });

我在 VS Code 中得到的错误是:

[ts] 无法调用类型缺少调用签名的表达式。类型 '{ '__metadata': { 'type':string; }; }' 没有兼容的调用签名。[2349] [ts] 预期属性分配。[1136]

我正在使用打字稿并做出反应。我是相当新的 JavaScript,所以如果我遗漏了一些明显的东西,请原谅我。

标签: typescript

解决方案


里面的任何东西都JSON.stringify应该是一个有效的 JSON 对象

const body: string = JSON.stringify({
  '__metadata': {
    'type': listItemEntityTypeName
  },
  [FIELD_NAME]: `${FIELD_VALUE}`   // FIELD_VALUE should also be fine, if you dont want to convert it to string.
});

删除键中的字符串文字可以为您提供有效的 JSON 并完全解决错误


推荐阅读