【问题标题】:Unable to print json values after parsing in NodeJS在 NodeJS 中解析后无法打印 json 值
【发布时间】:2015-02-27 05:10:38
【问题描述】:

下面的 NodeJS 代码尝试将 xml 文档转换为 json,然后解析它。

var fs = require('fs');
var parse = require('jsonml').parse;

var jsonML = parse(fs.readFileSync('myfile.xml'));
var jsondata = JSON.parse(jsonML);
console.log(jsondata.BESAPI.Computer[0].ID);

它工作正常,但我无法显示正确的值。在console.log(jsondata.BESAPI.Computer[0].ID);这一行抛出错误

我试图在 json 对象中显示每台计算机的 ID。

Json 对象

{
  "BESAPI": {
    "-xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
    "-xsi:noNamespaceSchemaLocation": "BESAPI.xsd",
    "Computer": [
      {
        "-Resource": "api/computer/2431038",
        "LastReportTime": "Thu, 26 Feb 2015 14:54:41 +0000",
        "ID": "2431038"
      },
      {
        "-Resource": "api/computer/16710075",
        "LastReportTime": "Thu, 26 Feb 2015 14:45:18 +0000",
        "ID": "16710075"
      },
      {
        "-Resource": "api/computer/3415985",
        "LastReportTime": "Thu, 26 Feb 2015 14:50:52 +0000",
        "ID": "3415985"
      }]
      }
}

我收到此错误:

【问题讨论】:

  • 你得到什么错误?
  • 不能打印怎么知道json长什么样子?
  • @SLaks 我已附上错误消息。
  • @theonlygusti 当然我试过 console.log(jsondata) 来知道它打印什么数据。
  • @user3846091 所以它应该打印[Object object],而不是上面的json。

标签: javascript json node.js


【解决方案1】:

如果没有您的原始 XML,我无法确定发生了什么,但 this experiment 可能会帮助您进行进一步调查。

对于类似 XML 的

<?xml version="1.0"?>
<BESAPI>
  <Computer ID="api/computer/2431038"></Computer>
  <Computer ID="api/computer/16710075"></Computer>
</BESAPI>

jsonML 的输出如下所示:

[ 'BESAPI',                                                                                                           
  [ 'Computer', { ID: 'abc123' } ],                                                                                   
  [ 'Computer', { ID: 'def987' } ] ]

这与您提供给我们的 JSON 不同,但尝试解析它会产生您提供的错误。

所以我猜测 jsonML 的输出不是可解析的 JSON,而是一个嵌套数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-11
    • 2021-10-15
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多