我有一个像这样的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\"}]}}"
}
}
所以我必须分别解析班级和学生:
result.data.class = JSON.parse(result.data.class);
result.data.student = JSON.parse(result.data.student);
是否有其他方法可以解析整个结果变量或使此步骤更短/更好?
由于
答案 0 :(得分:0)
您可以遍历数据属性的子节点并解析它们。
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,我就会这样做。