Я хочу преобразовать атрибуты в элементы в Strong-SOAP xmlToJson

Я использую модуль strong-soap node.js для преобразования строки XML в строку JSON: xmlHandler.xmlToJson ()

но XML из SOAP имеет атрибуты тегов, и они преобразуются из сильного мыла в элемент JSON с ключевыми атрибутами $, такими как:

{"fuelStation":{
"$attributes":{"id":"62611","lastUpdate":"2017-05-17T19:01:14.745Z","provider":"mdm"},
"location": ...

Как я могу удалить этот ключ $attribute, чтобы получить строку JSON, например:

{"fuelStation":{
    "id":"62611","lastUpdate":"2017-05-17T19:01:14.745Z","provider":"mdm",
    "location": ...

Я могу удалить только целые атрибуты $, но это не моя цель:

const root = xmlHandler.xmlToJson(null, xmlString, null);
const jsonString = JSON.stringify(root.Body.GetFuelStationsResponse, function replacer(key, value) {
                    return key !== '$attributes' ? value: undefined;
                });

Могу ли я преобразовать атрибуты в свойства JSON, используя strong-soap xmlToJson или функцию заменителя JSON.stringify?

1 ответ

Я исправил это с помощью JSON.stringify:

const jsonString = JSON.stringify(root.Body.GetFuelStationsResponse, function replacer(key, value) {
                if(value !== null && typeof value === 'object' && '$attributes' in value){
                    for(const k in value.$attributes) value[k]=value.$attributes[k];
                    value.$attributes = undefined;
                }
                return value;
            });
Другие вопросы по тегам