// My input String
// Could be on : true, on : false, bri : 255, etc, etc
var inputString = 'on : true'
console.log(inputString);
var wrongResult = { inputString }
console.log(wrongResult);
// The result that I am trying to achieve
var desiredResult = {
on : true
}
console.log(desiredResult);
我创建了上面的代码片段来演示我遇到的问题。我收到的输入字符串可能是“on : true”、“on : false”、“bri : 250”、“sat : 13”等。将此数据发布到服务器时,有效的格式是上面显示为“desireResult”。
但是,当在变量中获取字符串(例如 'on : true')并将其放置在 {} 内时,它似乎总是创建一个以变量名作为键、字符串本身作为值的字典。
有人可以解释一下这是为什么以及如何解决它吗?
最佳答案
Can someone explain why this is
因为语法 { foo }
的意思是“创建一个对象,给它一个名为 foo
的属性,给该属性赋予 foo
的值> 变量。
how to get around it
解析数据。显式分配它。
首先在 :
上拆分字符串。然后删除空白区域。然后测试第二个值是数字还是关键字。等等。
如果您接收的数据采用标准格式,这会更容易。然后您可以使用现有的解析器。如果您可以控制输入:将其更改为有效的 JSON,然后使用 JSON.parse
。
关于javascript - 大括号内的 Node JS 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46197957/