可以使用递归
函数
和 JSON.parse() 方法来解析嵌套的字符串化 json 对象。递归
函数
可以帮助我们处理嵌套层级。例如:
const jsonString = '{"name":"Lucy", "age":20, "address":{"city":"Beijing", "street":"First street"}}';
function parseJsonString(jsonString) {
try {
const jsonObj = JSON.parse(jsonString);
for (let key in jsonObj) {
if (typeof jsonObj[key] === 'string') {
jsonObj[key] = jsonObj[key].trim();
} else if (typeof jsonObj[key] === 'object') {
jsonObj[key] = parseJsonString(JSON.stringify(jsonObj[key]));
return jsonObj;
} catch (err) {
console.error(err);
const parsedJsonObj = parseJsonString(jsonString);
console.log(parsedJsonObj);
在上面的代码中,我们使用了 JSON.parse() 方法将字符串化 json 转换为对象。然后,我们使用 for...in 循环遍历对象的属性。如果属性值是字符串类型,则将字符串的两端空格去掉。如果属性值是对象类型,则递归调用 parseJsonString() 函数进行进一步解析。最后,我们返回解析后的 json 对象。
在上例中,我们的 json 对象有两个层级,使用递归方法便轻松处理了。通过递归方法,可以简单地应用于任意数量的层级处理,以便解决嵌套字符串 json 对象的解析问题。