无法访问将 xml 转换为 json

Posted

技术标签:

【中文标题】无法访问将 xml 转换为 json【英文标题】:Can not access converted xml to json 【发布时间】:2022-01-14 14:02:34 【问题描述】:

我在处理一个项目时遇到了一个问题,涉及将 .xml 文件转换为 json。我正在使用包 xml2js 来执行此操作。当我控制台记录已被字符串化的 json 时,我得到了正常的 json。但是我无法通过键入 json.station 作为示例来访问其中的任何对象。在我的代码中,我使用我编写的 json 进行了尝试,但我没有这个问题。转换后的 json 和我自己的看起来和我一模一样。

const xml = '<timetable station="Berlin S&#252;dkreuz" eva="8011113"><s id="-6544008849917647305-2112082040-19" eva="8011113"><ar ct="2112082232" l="5"/><dp ct="2112082234" l="5"/></s> </timetable>';

const data = 
    "timetable": 
        "$": 
            "station": "Test"
        
    


console.log(data.timetable.$.station + '\n')

xml2js_parser(xml, function (err, result) 
    const json = JSON.stringify(result, null, 4)
    console.log(json.timetable)
);

【问题讨论】:

当您使用 JSON.strinify() 时,您正在将对象转换为字符串,并且该字符串将无法访问任何 JSON 属性。不要把它串起来,或者在你做之前抓住result.timetable 【参考方案1】:

你必须把它解析回JSON,你为什么要把它字符串化?

xml2js_parser(xml, function (err, result) 
    const json = JSON.stringify(result, null, 4)
    console.log(JSON.parse(json).timetable)
);

【讨论】:

以上是关于无法访问将 xml 转换为 json的主要内容,如果未能解决你的问题,请参考以下文章

Spring oauth2 刷新令牌 - 无法将访问令牌转换为 JSON

Spring oauth2刷新令牌 - 无法将访问令牌转换为JSON

我正在使用 C# 将 XML 文件转换为 CSV。我尝试了不同的方法,但无法弄清楚如何访问键名/值对

无法访问 JSON 对象属性 [重复]

PHP - xml到json转换:“无法将字符串解析为XML”

WSO2 ESB 无法将完整的 JSON 数据转换为 XML