Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何在JSON stringify中使用变量作为字段名?_Typescript - Fatal编程技术网

Typescript 如何在JSON stringify中使用变量作为字段名?

Typescript 如何在JSON stringify中使用变量作为字段名?,typescript,Typescript,我希望能够使用变量作为字段名动态创建JSON对象 const body: string = JSON.stringify({ '__metadata': { 'type': listItemEntityTypeName }, `${FIELD_NAME}`: `${FIELD_VALUE}` }); 我已经解决了如何使用$()从变量设置字段值的问题,但它对字段名不起作用 const body: string = JSO

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

    const body: string = JSON.stringify({
      '__metadata': {
        'type': listItemEntityTypeName
      },
      `${FIELD_NAME}`: `${FIELD_VALUE}`
    });
我已经解决了如何使用
$()
从变量设置字段值的问题,但它对字段名不起作用

    const body: string = JSON.stringify({
      '__metadata': {
        'type': listItemEntityTypeName
      },
      `${FIELD_NAME}`: `${FIELD_VALUE}`
    });
我在VS代码中遇到的错误是:

[ts]无法调用类型缺少调用签名的表达式。类型“{'\u metadata':{'Type':string;};}”没有兼容的调用签名。[2349] [ts]预计将进行财产转让。[1136]


我用的是打字脚本和反应。我是一个全新的JavaScript,如果我遗漏了一些明显的东西,请原谅。

任何包含在
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并彻底解决错误

您可以将对象视为数组

var字段_NAME='hello'
变量字段_值='world'
var obj={
“\u元数据”:{
“类型”:“aaaa”
},
}
obj[字段名称]=字段值

console.log('obj',obj)
它应该是
[FIELD\u NAME]
而不是
`${FIELD\u NAME}
这里要查找的术语是“计算的属性名”。同样,
${FIELD\u VALUE}
的可能重复项(周围有背景标记)可能就是
FIELD\u VALUE
,除非您想将任何值转换为字符串。
FIELD\u NAME
将在此处作为键。他有一个同名的变量。抓好了@Jeto