首页 > 解决方案 > 在打字稿中迭代嵌套的 JSON 字符串

问题描述

我有一个测试嵌套的 JSON 字符串。

const testString = `{
  "object1": {
    "5": [
      {
        "id": "A2OKPZ5S9F78PD",
        "rate": "2",
        "item": "item",
        "status": "status"
      }
    ]
  },
  "type": "LIVE_EVENT"
}`;

const model = JSON.parse(testString);
Object.values(model.object1).forEach((obj) =>
  obj.foreach((innerObj) => console.log(innerObj))
);

正如您在上面看到的,我试图将其解析为 JSON 并进行迭代。我在 JSON.parse 内部对象期间面临的问题假定类型未定义并且 foreach 不能应用于它。有人可以帮忙吗?

标签: javascriptjsontypescript

解决方案


您的JSON无效(在编辑之前),因为状态键/值对后面有一个额外的逗号,并且forEach()有一个大写的 E。此外,正如下面评论中所讨论的,您似乎需要将内部obj转换为一种类型了解forEach()

const testString = `{"object1":{"5":[{"id":"A2OKPZ5S9F78PD","rate":"2","item":"item","status":"status"}]},"type":"LIVE_EVENT"}`;
const model = JSON.parse(testString);
Object.values(model.object1).forEach((obj) =>
  (obj as any).forEach((innerObj) => console.log(innerObj))
);


推荐阅读