简体   繁体   English

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

[英]How to parse all JSON strings in a JavaScript object

I have 1 JavaScript object like this: 我有一个像这样的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\"}]}}"
  }
}

So I have to parse class and student separately: 所以我必须分别解析班级和学生:

result.data.class = JSON.parse(result.data.class);
result.data.student = JSON.parse(result.data.student);

Is there other way to parse the whole result variable or make this step shorter/better? 是否有其他方法来解析整个结果变量或使此步骤更短/更好?

Thanks 谢谢

You could loop through the data property's children and parse them. 您可以遍历数据属性的子项并解析它们。

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
}

But I'd only do that if you're sure you'll only ever have to deal with stringified JSON in the data property of your object. 但是我只会这样做,如果你确定你只需要处理对象的data属性中的字符串化JSON。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM