如何从Typescript中以#或@开头的属性获取JSON数据

Posted

技术标签:

【中文标题】如何从Typescript中以#或@开头的属性获取JSON数据【英文标题】:How to get JSON data from attributes that start with # or @ in Typescript 【发布时间】:2022-01-13 23:59:22 【问题描述】:

我正在使用一个特定的 API,它返回类似于以下示例的 JSON。

我想获取包含 #text 和 @attr 的两个值,但是当我尝试获取这些值时,我在 typescript 中收到错误消息。

【问题讨论】:

究竟是什么错误?您访问此属性的代码是什么?请提供minimal complete reproducible example 请不要use images for code, data structures or log files 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

嘿,对于 JSON,您可以通过其中的属性名称使用获取详细信息,并且对于以 @ 或 # 开头的全天候相同。

查看以下代码以获取指定键的值:

示例 JSON:


    "weeklyalbumchart": 
        "album": [
            
                "artist": 
                    "mbid": "data",
                    "#text": "Flying Lotus"
                ,
                "mbid": "data",
                "url": "",
                "name": "",
                "@attr": 
                    "rank": "1"
                ,
                "playcount": "21"
            ,
            
                "artist": 
                    "mbid": "data",
                    "#text": "Flying Lotus"
                ,
                "mbid": "data",
                "url": "",
                "name": "",
                "@attr": 
                    "rank": "1"
                ,
                "playcount": "21"
            
        ]
    

读取 JSON:

@attr ===> json["weeklyalbumchart"]["album"][0]["@attr"]

#text ===> json["weeklyalbumchart"]["album"][0]["artist"]["#text"]

希望这能帮助你理解它。

【讨论】:

【参考方案2】:

尝试使用,

album[0]["@attr"]
album[0]["artist"]["#text"]

【讨论】:

以上是关于如何从Typescript中以#或@开头的属性获取JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vue 中以 Typescript 语法定义使用 prop 作为其初始值的本地数据属性?

正则表达式中以啥开头啥结尾怎么写

获取 FASTA 中以特定氨基酸开头的蛋白质序列的标题行

如何从索引中以字符串形式获取突出显示数据或如何将其打印出来?

如何使用 LINQ 从 DataTable 中以 IEnumerable<MODEL> 形式获取数据?

TypeScript中类的使用详解