我有 1 个这样的 JavaScript 对象:
result = {
"status": "success",
"message": "Get successful!",
"data": {
"name":"Hello world",
"school": {
"name":"LHP",
"address":"HCM"
},
"class": "[{\"text\":\"Math\",\"code\":\"math124\"},{\"text\":\"Libra\",\"code\":\"libra124\"}]",
"student": "{\"time_range\":{\"type\":\"select\",\"text\":\"Today\",\"value\":[{\"code\":\"in_today\",\"text\":\"In Today\"}]}}"
}
}
所以我必须分别解析类(class)和学生:
result.data.class = JSON.parse(result.data.class);
result.data.student = JSON.parse(result.data.student);
是否有其他方法来解析整个结果变量或使此步骤更短/更好?
谢谢
最佳答案
您可以循环访问数据属性的子属性并解析它们。
for (var i = 0; i < Object.keys(result.data).length; i++) {
try {
result.data[Object.keys(result.data)[i]] = JSON.parse(result.data[Object.keys(result.data)[i]]);
} catch (error) {} // it's already JSON
}
但只有当您确定只需要处理对象的 data
属性中的字符串化 JSON 时,我才会这样做。
关于javascript - 如何解析 JavaScript 对象中的所有 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43317816/