Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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
Javascript 将对象的所有键名转换为字符串_Javascript_Node.js - Fatal编程技术网

Javascript 将对象的所有键名转换为字符串

Javascript 将对象的所有键名转换为字符串,javascript,node.js,Javascript,Node.js,我有一个物体像: obj = {"a": 1, "b": 2, c: 3} 此对象由Node.js包返回 我想将此对象传递给请求头,但它失败了,因为该对象中的c具有无效的键名 是否可以将我的对象的所有键名转换为字符串?您可以创建一个新对象,并在创建键时调用toString() const obj = { "a": 1, "b": 2, c: 3 }; const newObj = {}; for (let keys in obj) { newObj[keys.toString(

我有一个物体像:

obj = {"a": 1, "b": 2, c: 3}
此对象由Node.js包返回

我想将此对象传递给
请求
头,但它失败了,因为该对象中的
c
具有无效的键名


是否可以将我的对象的所有键名转换为字符串?

您可以创建一个新对象,并在创建键时调用
toString()

const obj = {
  "a": 1,
  "b": 2,
  c: 3
};
const newObj = {};
for (let keys in obj) {
  newObj[keys.toString()]: obj[keys]
}

您可以使用
JSON.stringify()
将其转换为有效的JSON字符串:

obj=JSON.stringify({“a”:1,“b”:2,c:3});

log(obj)
在JavaScript中,所有非符号的对象键都转换为字符串

obj = {1: 1}
obj['1'] = 2;
// obj is {1: 2}
如果您从节点包中获得了这样一个“对象”,这意味着数据没有正确准备-可能有人手工创建了JSON(编写字符串而不是字符串化对象)

如果您想将“添加到所有键并将一个对象更改为字符串,那么,换句话说,用它生成一个JSON-您可以使用
JSON.stringify(obj)/“{”a:1,“b:2”,c:3}”

如果您想用这样一个损坏的JSON创建一个对象:

JSON.parse(JSON.stringify(obj)) // "{a: 1, b: 2, c: 3}"

这是一个字符串tho,我应该执行
JSON.parse()
将其转换回对象吗?@MatrixCow08当您要将JSON字符串反序列化回对象时,可以使用
JSON.parse()
JSON.parse()
似乎把
c
带回了它是如何was@MatrixCow08是的,这将JSON字符串转换回JavaScript对象,这就是为什么在
JSON.parse()返回的值中不会看到任何键的引号
call.JS对象周围不需要双引号,除非它们之间有空格,但JSON标准需要。我想这并不是在推送任何东西到
newObj