将json转换为XML后对结果进行排序
Sort the result after converting json to XML
我有一个json文件,如:
"files": {
"audio": {
"number1": {
"enabled": false,
"priority": 5,
},
"number2": {
"enabled": false,
"priority": 1,
},
"number3": {
"enabled": false,
"priority": 2,
}
}
}
我用一些函数将json文件转换为xml还有这个函数:
function extractFile(data){
// adding for loop to check priority number?
var datas = [];
var element = data.files.audio;
datas.push({
name : 'Num1',
enabled : element. number1.enabled? "true":"false"
});
datas.push({
name : 'Num2',
enabled : element. number2.enabled? "true":"false"
});
datas.push({
name : 'Num3',
enabled : element. number3.enabled? "true":"false"
});
return datas;
}
输出为:
<file name="Num1" enabled="false"/>
<file name="Num2" enabled="false"/>
<file name="Num3" enabled="false”/>
我如何根据json中的优先级编号来排序它们?
输出需要像这样:
<file name="Num2" enabled="false"/>
<file name="Num3" enabled="false"/>
<file name="Num1" enabled="false”/>
您的代码中需要一个可以按顺序迭代data.files.audio
的循环。这看起来像是一个对象而不是一个数组,所以尝试遍历对象属性来创建一个数组。
在JavaScript中,您将需要使用按字符串属性值排序对象数组的答案对data.files.audio
数组进行排序。
编辑
function extractFiles(data) {
var elements = [];
var files = [];
// create an array of your source data objects
for (var property in data.files.audio) {
if (data.files.audio.hasOwnProperty(property)) {
var p = data.files.audio[property];
p.name = property.toString();
elements.push(p);
}
}
// create function to sort object array by priority
function compareFiles(a, b) {
if (a.priority < b.priority) return -1;
if (a.priority > b.priority) return 1;
return 0;
}
// create data for xml from sorted object array
for (var e in elements.sort(compareFiles)) {
files.push({
name: elements[e].name,
enabled: elements[e].enabled ? "true" : "false"
});
}
return files;
}
相关文章:
- Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果
- 如何对javascript表进行排序(升序或降序),该表是某些SQL操作表的结果
- 如何在AngularJS中根据子结果集排序结果
- 重新排序angularjs ngRepeat与后续数据结果
- 对indexedDB查询的结果进行排序
- 如何对select2自动完成结果进行排序,只显示以第一个字母开头的项目
- 使用 Greasemonkey 修改 Craigslist 的默认搜索结果排序
- 根据所选排序动态更改结果
- 按活动排序,但不在结果中显示活动
- 按距离对搜索结果进行排序
- 使用 AJAX 回调更新挖空可观察数组会生成随机排序的结果
- JS AJAX 提前键入结果排序/竞争条件
- Javascript JSON 结果排序
- 将对象属性设置为排序结果而不进行排序
- 检索两个列表,对值进行排序和比较,然后显示所有结果
- 随后的多维数组排序会产生意外的结果
- javascript排序和排序等于结果.怎样
- 按HTML表列对查询结果排序
- 按数组大小对结果排序
- 通过JavaScript奇数结果排序JSON对象