我正在将带有属性的XML消息转换为JSON并分配给变量。现在,变量 x
具有转换后的 JSON 消息。现在我想从该变量中提取键值对 x(string)
.
请检查以下详细信息。XML 消息是
<?xml version="1.0" encoding="UTF-8"?>
<OBJECT key="postorder" type="TEMP">
<TEMP>
<ROW order-version-id="1"
layout-type="2"
order-no="3"
order-action="4"
estimated-price="5"
orig-price="6"
quantity="7"
orig-quantity="8"
quantity-type="6"
trade-currency="7"
base-currency="8"
settlement-currency="9"/>
</TEMP>
</OBJECT>
我正在使用快速xml解析器进行转换,输出如下
{
"OBJECT":{
"key":"postorder",
"type":"TEMP",
"TEMP":{
"ROW":{
"order-version-id":"1",
"layout-type":"2",
"order-no":"3",
"order-action":"4",
"estimated-price":"5",
"orig-price":"6",
"quantity":"7",
"orig-quantity":"8",
"quantity-type":"6",
"trade-currency":"7",
"base-currency":"8",
"settlement-currency":"9"
}
}
}
}
并将其分配为var result = JSON.stringify(jsonObj);
现在字符串类型的结果具有转换后的 JSON 消息。从结果中,我需要获取基础货币值
任何线索都值得赞赏。
没有进一步的例子,我不确定这是否是你真正想要的,但据我了解:
你有这个:
let x = '{k1: v1, k2: v2, k3: v3....}'
你想要这个:
let object = {k1: v1, k2: v2,...}
最快的方法是使用 JSON.parse 功能:
let x = '{k1: v1, k2: v2, k3: v3....}';
let object = JSON.parse(x);
编辑:在您的特定示例中,您不需要使用 JSON.stringify。您已经有一个 JSON 对象,可以像这样访问它:
let object = /*that parsed XML*/
let baseCurrency = object.OBJECT.TEMP.ROW['base-currency']; //this will give you the value as string
首先使用JSON.parse
函数将字符串转换为 JSON 对象。
const object1 =JSON.parse(jsonstr) ;
console.log(Object.keys(object1));
Object.keys() 方法返回给定对象自己的属性名称的数组,其顺序与正常循环的顺序相同。
JSON.parse
函数将字符串转换为 JSON 对象。
希望以下示例可以帮助您入门。
const x = '{"key1":"value1","key2":"value2"}';
const json = JSON.parse(x);
console.log(json.key1);
console.log(json.key2);
更新(基于相关更改)
从 fast-xml 解析器获得的结果是一个 JSON 对象。您无需使用 JSON.stringify
将其转换为字符串。可以直接使用该对象并获取base-currency
值。
请参阅下面的代码。
const jsonObj = {
"OBJECT": {
"key": "postorder",
"type": "TEMP",
"TEMP": {
"ROW": {
"order-version-id": "1",
"layout-type": "2",
"order-no": "3",
"order-action": "4",
"estimated-price": "5",
"orig-price": "6",
"quantity": "7",
"orig-quantity": "8",
"quantity-type": "6",
"trade-currency": "7",
"base-currency": "8",
"settlement-currency": "9"
}
}
}
};
const baseCurrency = jsonObj.OBJECT.TEMP.ROW["base-currency"];
console.log(baseCurrency); // 8