如何解析JavaScript对象中的所有JSON字符串

时间:2017-04-10 08:06:33

标签: javascript

我有一个像这样的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);

是否有其他方法可以解析整个结果变量或使此步骤更短/更好?

由于

1 个答案:

答案 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,我就会这样做。