我有这个字符串:
const test = `
{
"name": "Error",
}
{
"name": "Signup Success",
"status": "400",
"body": {
"name": {
"first": "test",
},
"roles": [
"user"
],
"isMale": true,
}
}
`
如何分别获取两个对象中的内容。就像第一个对象包含 "name": "Error"
而第二个对象包含:
"name": "Signup Success",
"status": "400",
"body": {
"name": {
"first": "test",
},
"roles": [
"user"
],
"isMale": true,
}
最佳答案
你可以构建一个解析器:
const test = `
{
"name": "Error",
}
{
"name": "Signup Success",
"status": "400",
"body": {
"name": {
"first": "test",
},
"roles": [
"user"
],
"isMale": true,
}
}
`;
const addCommas = str => {
const charactersArray = Array.from(str.replace(/\s/g, ''));
charactersArray.reduce((acc, curr, index, self) => {
if (curr === '{') acc++;
if (curr === '}') acc--;
if (acc === 0 && curr === '}') self[index] = '},';
return acc;
}, 0);
return charactersArray.join('').replace(/,\}/g, '}').replace(/,$/, '');
};
const parsedObject = JSON.parse('['+addCommas(test)+']');
parsedObject.forEach((el, i) => {
console.log(`Element ${i+1} name: ${el.name}`);
});
这是 100% 安全的,因为 "}{"
字符串也不会导致问题
关于javascript - 获取字符串中对象的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279073/