下面的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"
}]
}
}
我收到此错误:
答案 0 :(得分:0)
如果没有原始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,而是一个嵌套的排序数组。