【发布时间】:2019-01-20 21:04:27
【问题描述】:
在 Javascript 中,我有一个需要转换为 JSON 的字符串。 我尝试如下使用正则表达式转换它,但没有得到预期的结果:
var testData = "{ name=xyz, \
ip=[127.0.0.1], \
machine_id=AVC_ASD_QWESF, \
sys_Properties=[{ \
Memory=4 GB, \
system_type={ \
OS=64 bit, \
processor=64 bit \
} \
}] \
}";
var testJson = '';
var testArray = testData.split(',');
testArray.forEach(function(item) {
var kvp = item.split('=');
if (kvp.length > 1) {
var key = kvp[0];
var value = kvp[1];
var value1 = '';
if (kvp.length > 2) {
value1 = kvp[2];
value1 = value1.replace(/\b[a-zA-Z0-9]/gi, function(char) {
return '"' + char;
})
value1 = value1.replace(/[a-zA-Z0-9]\b/gi, function(char) {
return char + '"';
})
value = value + '": ' + value1;
} else if (kvp.length = 2) {
value = value.replace(/\b[a-zA-Z0-9]/gi, function(char) {
return '"' + char;
})
value = value.replace(/[a-zA-Z0-9]\b/gi, function(char) {
return char + '"';
})
}
key = key.replace(/\b[a-z]/gi, function(char) {
return '"' + char;
})
testJson = testJson + key + '": ' + value + ',';
} else {
testJson = testJson + item + ",";
}
});
是否有任何选项可以包含诸如“。”之类的符号包含在单词边界中。
编辑:
预期的 JSON 格式:
{
"name":"xyz",
"ip":["127.0.0.1"],
"machine_id":"AVC_ASD_QWESF",
"sys_Properties":[
{ "Memory":"4 GB",
"system_type":{
"OS:64 bit",
"processor":"64 bit"
}
}
]
}
【问题讨论】:
-
你确定你只能这样的文本数据?
-
是的,这就是我们获取数据的方式
标签: javascript json regex