1

我有以下xml

<measureDef><formula><aggFunction type="sum"><expression><field>ADMIT</field><factTable>ADMIT</factTable><aggregation>SUM</aggregation></expression></aggFunction></formula></measureDef>

我已经转换成 json 为

let dimensionJson = { "measureDef":{                
                        "formula": {
                           "aggFunction": {
                            "_attributes": {
                                "type": "sum"
                            },
                              "expression": {
                                 "field": "ADMIT",
                                 "factTable": "ADMIT",
                                 "aggregation": "SUM"
                              }
                           }
                        }            
                }
}

现在,在某些情况下,我想将此 Json 转换为 xml。所以,我正在尝试转换

const xml2JsonOptionsDefault = { compact: true, spaces: 0 };
    console.log('FORMULA ARRAY', convert.js2xml(dimensionJson, xml2JsonOptionsDefault));

它正在抛出“超出最大调用堆栈大小”。有人能告诉我为什么会这样吗?

4

1 回答 1

0

从回购中的类似问题:

...您可能在 json 输入中缺少"_text"属性。例如,{"a": "hi"}不会产生<a>hi</a>. 正确的输入是{"a":{"_text":"hi"}}

这是未经测试的,但您可能需要为 JSON 中将在 XML 中具有值的任何属性包含一个“_text”属性。

例子:

let dimensionJson = {
    "measureDef": {
        "formula": {
            "aggFunction": {
                "_attributes": {
                    "type": "sum"
                },
                "expression": {
                    "aggregation": {
                        "_text": "SUM"
                    },
                    "factTable": {
                        "_text": "ADMIT"
                    },
                    "field": {
                        "_text": "ADMIT"
                    }
                }
            }
        }
    }
}
于 2019-02-16T13:48:08.440 回答