2017-06-05 74 views
0

我有一个xml文件,我将其转换为JSON以简化某些操作。访问JSON的节点j中的特定位置

我写这个片段:

var fs = require('fs'); 
var parser = require('xml2json'); 

var fileXML = ''; 
var str = ''; 

fs.readdirSync('C:/Users/dir/').forEach(file => { 
    if(file.includes('.xml')){ 
     fileXML = file; 
    } 
}); 


fs.readFile('C:/Users/dir/'+fileXML, function(err, data) { 
    var json = parser.toJson(data); 
}); 

​​是JSON表示此:

{ 
    "event:eventsList":{ 
     "xmlns:event":"info", 
     "event:header":{ 
     "event:fileName":"info1", 
     "event:creationDate":"2017-03-28T17:10:00.113+01:00", 
     "event:eventsAmount":"4", 
     "event:messageId":"2" 
     } 
    } 
} 

我的问题是,我怎么能访问event:eventsList财产?

我试过json.event但它给了我错误。

+0

请包括您收到的错误。另外,JSON是一种字符串格式,所以也许'json'实际上是一个字符串,而不是你(和回答者)所期待的那样的一个对象? –

回答

2

为了访问event:eventsList键,你需要利用brackets notation的,因为你的关键不是有效的JSON关键

var json = { 
 
     "event:eventsList":{ 
 
      "xmlns:event":"info", 
 
      "event:header":{ 
 
      "event:fileName":"info1", 
 
      "event:creationDate":"2017-03-28T17:10:00.113+01:00", 
 
      "event:eventsAmount":"4", 
 
      "event:messageId":"2" 
 
      } 
 
     } 
 
    } 
 
    
 
    console.log(json["event:eventsList"])

+0

感谢您的快速回答,但它在我的应用程序 – OiRc

+0

上打印了未定义的内容。您在哪里可以在您的应用程序中使用此console.log –

+0

我在'var json = parser.toJson(data)之后放置了'console.log'; ' – OiRc

4

使用json["event:eventsList"],您可以访问对象键这样