【发布时间】:2018-09-13 10:14:40
【问题描述】:
我有使用此代码格式化为 JSON 的 JavaScript 对象:
obj.push({
lat: (lat / 1e5).toFixed(5),
lon: (lon / 1e5).toFixed(5),
ele: "0"
});
此对象/数组可能包含数百个如下所示的单个对象/属性:
[{"lat":"32.71883","lon":"-16.76118","ele":"0"},{"lat":"32.71882","lon":"-16.76138","ele":"0"},{"lat":"32.71881","lon":"-16.76159","ele":"0"},{"lat":"32.71880","lon":"-16.76179","ele":"0"},{"lat":"32.71879","lon":"-16.76199","ele":"0"},{"lat":"32.71878","lon":"-16.76220","ele":"0"}....]
我想使用以下格式的正确元素标签将此对象转换为 XML:
<trkpt lat="32.7188300" lon="-16.7611800"> // note how this lumps together two separate properties into a single element
<ele>0</ele>
</trkpt>
我找到了一个转换对象的sn-p代码:
function objectToXml(object) {
var xml = '';
for (var prop in object) {
if (!object.hasOwnProperty(prop)) {
continue;
}
if (object[prop] == undefined)
continue;
xml += "<" + prop + ">";
if (typeof object[prop] == "object")
xml += objectToXml(new Object(object[prop]));
else
xml += object[prop];
xml += "<!--" + prop + "--\>";
}
return xml;
}
这肯定会在一定程度上转换对象,但是,它会尝试为每个属性集创建一个键,并将属性连接成一个字符串。
<0>32.71883-16.761180<1>32.71882-16.761380<2>32.71881-16.761590<3>32.71880-16.761790<4>.....
关于如何使用此函数按所述正确格式化 XML 的任何建议?
【问题讨论】:
-
嗨。我不想粗鲁,但您是否在寻求帮助之前先尝试调整
objectToXml功能? :) -
@Thomas Lombart - 我确实有,但我无法让它做我想做的事情:(
标签: javascript arrays json xml