Javascript 将字符串转换为格式不正确的JS对象
我的字符串格式不正确,使用JavaScript,假设数据为:Javascript 将字符串转换为格式不正确的JS对象,javascript,regex,Javascript,Regex,我的字符串格式不正确,使用JavaScript,假设数据为: {engine{type{condition},age},wheels,model{name},color} 我想把它转换成一个可用的(JS)对象。我可以使用正则表达式来解析片段,但我想知道是否有一个非正则表达式的方法可以这样做。如果你必须用正则表达式来做,那么最简单的方法是什么 转换的对象应该更像: { engine: { type: { condition: null }, age: null }, wh
{engine{type{condition},age},wheels,model{name},color}
我想把它转换成一个可用的(JS)对象。我可以使用正则表达式来解析片段,但我想知道是否有一个非正则表达式的方法可以这样做。如果你必须用正则表达式来做,那么最简单的方法是什么
转换的对象应该更像:
{
engine: {
type: {
condition: null
},
age: null
},
wheels: null,
model: {
name: null
},
color: null
}
我还可以从一系列嵌套数组中使用它。好吧,假设“char{”应该是“char:{”和“char”,“char}”应该是“char=null”或“char=null}”,这是一个非常简单的查找和替换。否则,您可能必须使用递归解析函数将其拆开并重新组装
var str=“{engine{type{condition},age},wheels,model{name},color}”
str=str.replace(/([A-z])\s*{/g,“$1:{”)
str=str.replace(/([A-z])\s*([},])/g,“$1:null$2”)
console.log(str);
你的意思是将一个格式错误的JSON对象(只有键/没有值)转换成一个正确的JSON对象吗?是的,可能在值下面插入空值。为你的小语言编写一个小解析器。我甚至没有想到,用正确的终止符替换结束位可能会非常有效,从而避免递归函数。@Organeiccat最佳解决方案通常是最简单的(就性能而言,这基本上只是对文本的一次演练)