开发者问题收集

将 JSON 转换为数组 typescript

2020-09-09
72

我有一些像这样的 json

const help = [
      {
        "en": [
          {
            "test2": [
              {
                "title": "Naslov1",
                "subtitle": "Podnaslov1",
                "answers": [
                  {
                    "answer": "Odgovor 11"
                  },
                  {
                    "answer": "Odgovor 12"
                  }
                ]
              }
            ],
            "test1": [
              {
                "title": "Naslov2",
                "subtitle": "Podnaslov2",
                "answers": [
                  {
                    "answer": "Odgovor 21"
                  },
                  {
                    "answer": "Odgovor 22"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]

我需要将这个 json 过滤为一些属性,我有属性 en test2 我的新对象应该是这样的

const newArray =  [ {
                    "title": "Naslov1",
                    "subtitle": "Podnaslov1",
                    "answers": [
                      {
                        "answer": "Odgovor 11"
                      },
                      {
                        "answer": "Odgovor 12"
                      }
                    ]
                  }]

我试过 help.en.test2 但出现错误 TypeError: 无法读取未定义的属性“test2”

有人能帮我如何重新映射这个吗,谢谢

3个回答

您需要使用 help[0].en[0].test2 ,因为 helpen 是一个数组,并且您的数据位于索引 0 处。

Aakash Garg
2020-09-09

您应该尝试: help[0].en[0].test2

Cirrus Minor
2020-09-09

SO 上有很多这样的问题。如果您在弄清楚某些 JSON 的结构时遇到困难,使用 chrome 开发人员控制台会有所帮助。如果您将代码粘贴到 chrome 开发控制台中,则可以尝试使用 test

只需查看它, help 是一个数组,因此 help.en 将未定义,您需要使用 help[0].en

然后查看它, en 是一个数组,因此 help[0].en.test2 也将未定义。您必须执行 help[0].en[0].test2

当然这也是一个数组...

Jason Goemaat
2020-09-09