【问题标题】:Convert non typical json string to JSON将非典型 json 字符串转换为 JSON
【发布时间】:2021-11-04 09:07:45
【问题描述】:
我从一个随机的 API url 中获取,我得到了这样的响应:
"key='jio3298', age=24, key='oijf032', age=62"。 如何使用 JavaScript 以有效的方式将此非 json 字符串转换为 JSON 对象列表(即[{'key': 'jio3298', age: 24}, {'key':'oijf032', 'age':62}])?我确实在一次采访中遇到了这个代码问题(问题的一部分。我需要该列表根据条件循环和过滤),看来我的回答至少很慢。
【问题讨论】:
标签:
performance
javascript-objects
【解决方案1】:
你应该使用
String.prototype.split()
创建一个数组,然后在这个数组上循环并创建键和值的梨。
这里是一个例子:
const parser = (input) => {
input = input.split(",");
let keyAgeList = [],
output = [];
for (let i of input) {
i = i.replace("'", "");
i = i.replace(" ", "");
i = i.split("=");
if (i[0] === "key") {
keyAgeList[0] = i[1];
} else {
keyAgeList[1] = i[1];
}
if (keyAgeList.length > 1) {
let x = {
key: keyAgeList[0].replace("'", ""),
age: keyAgeList[1].replace("'", ""),
};
output.push(x);
keyAgeList = [];
}
}
console.log(JSON.stringify(output))
return JSON.stringify(output);
};
parser("key='jio3298', age=24, key='oijf032', age=62")