gpt4 book ai didi

Javascript 将不同格式的字符串转换为 Json

转载 作者:行者123 更新时间:2023-12-03 01:19:22 28 4
gpt4 key购买 nike

在 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"
}
}
]
}

最佳答案

尝试使用 .replace 回调:

const regex = /\s*(\w+)\s*(?==)|(=\[?)([^,{\[\]}\n]+)/g;
const str = `{ 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
}
}]
}`;

const result = str.replace(regex, function(m, group1, group2, group3) {
if (group1) return `"${group1}"`; //key
else if (group2) return `${group2}"${group3}"`; // ="value"
//else return m;
});
console.log(result.replace(/\=/g, ':')
.replace(/(".+?")|\s+/g, `$1`));
//replace remaining = with colon, and optional: replace remaining whitespace

如果没有 ip 键值对,这可能会非常容易。我试图保持简单,并在最后一步将剩余的 = 替换为冒号。或者,我们也可以删除剩余的空格,或者使用 JSON.stringify(JSON.parse(result)) .

关于Javascript 将不同格式的字符串转换为 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51834090/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com