получить атрибут объекта json с точкой в ​​имени - PullRequest
0 голосов
/ 07 сентября 2018

*** Проблема решена: проблема была в json.stringify .. намного легче справиться, когда ее не будет.

var DBName = result['Document']['SW.Blocks.GlobalDB']['AttributeList']['Name'];

У меня есть XML-файл, описывающий блок данных из ПЛК, и я хочу получить конкретные значения с помощью JS. Я преобразовал его с помощью модуля xml2js, поэтому у меня есть объект json для работы.

{
   "Document": {
      "Engineering": {
         "$": {
            "version": "V15"
         }
      },
      "SW.Blocks.GlobalDB": {
         "$": {
            "ID": "0"
         },             
        "HeaderAuthor": "",
        "HeaderFamily": "",
        "HeaderName": "",
        "HeaderVersion": "0.1",
        "Interface": {
 ... 
 ...
           "Name": "datentypen",
           "Number": "6",
           "ParameterModified": {
              "_": "2018-09-05T11:49:37.0862092Z",
              "$": {
                 "ReadOnly": "true"
              }
           },
        }
}

Я хочу распечатать «Имя» и «Номер», которые являются частью «AttributeList». Так как же справиться с «SW.Blocks.GlobalDB»?

Получение ошибки: «Ошибка типа: невозможно прочитать свойство« SW »из неопределенного» * ​​1017 *

var fs = require('fs');
var xml2js = require('xml2js');
var xml = fs.readFileSync('datentypen.xml');
var parser = new xml2js.Parser({explicitArray: false});

parser.parseString(xml, function(err, result) {
    if (err) {
      console.error('xml2js.parse error: ',err);
    } else {
      var injson = JSON.stringify(result,null,3);
      console.log(injson);
//      var injson2 = JSON.parse(injson);
//      var DBnummer = injson.Document.SW.Blocks.GlobalDB.AttributeList["Name","Number"];
//      console.log(DBNummer);
    };
});

Я много читал об этой теме, но не нашел конкретного ответа .. Когда я пишу ["SW.Blocks.GlobalDB"], появляется ошибка [[10].

1 Ответ

0 голосов
/ 07 сентября 2018

Можете ли вы попробовать прочитать массив JSON, используя пару ключ-значение? У меня были похожие проблемы, но с другим языком программирования.

...