typescript - 如何在 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,所以如果我遗漏了一些明显的东西,请原谅我。
解决方案
里面的任何东西都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 并完全解决错误
推荐阅读
- c++ - 关于构造函数调用顺序和虚拟基类的混淆
- java - 使用带有杰克逊的过滤器将树结构序列化为 JSON
- angular - 调用服务后如何调用不同的 Ionic toast?
- java - 如何在另一个正在运行的类中调用函数?
- python - 不同的值会触发 Jupyter Notebook 内 Pandas 数据框中的 SettingWithCopyWarning
- node.js - 管道node.js ServerResponse对象在强大事件结束后抛出写入
- html - 数据在 HTML 中从列流向行
- c++ - 避免基于反向范围的 for 循环实现的悬空引用
- javascript - 无休止的“npm 运行弹出”循环?
- gradle - 找不到方法 sonarProperties()