将 JSON 转换为数组打字稿

Posted

技术标签:

【中文标题】将 JSON 转换为数组打字稿【英文标题】:Convert JSON to array typescript 【发布时间】:2020-12-27 12:50:47 【问题描述】:

我有一些这样的 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 过滤到某个属性,我有属性 entest2 我的新对象应该看起来像

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

我已尝试 help.en.test2,但出现错误 TypeError: Cannot read property 'test2' of undefined

谁能帮我重新映射一下,谢谢

【问题讨论】:

How can I access and process nested objects, arrays or JSON? 的副本。另请注意that's not JSON. 这些都是数组,你试过help[0].en[0].test2[0]吗? 【参考方案1】:

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

【讨论】:

【参考方案2】:

你应该试试:help[0].en[0].test2

【讨论】:

【参考方案3】:

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

看一看,help是一个数组,所以help.en是未定义的,需要使用help[0].en

然后看,en 是一个数组,所以help[0].en.test2 也将是未定义的。你必须做help[0].en[0].test2

当然那也是一个数组……

【讨论】:

以上是关于将 JSON 转换为数组打字稿的主要内容,如果未能解决你的问题,请参考以下文章

将firebase json转换为打字稿数组

在打字稿中将 JSON 转换为字符串数组

打字稿->从Json.net转换字典的内容

打字稿:将 JSON 对象转换为类/接口对象

将首先转换为 Observable 的 json 文件转换为打字稿中的地图,角度

将打字稿枚举转换为枚举数组