Javascript 将json转换为xml并删除空字符串

Javascript 将json转换为xml并删除空字符串,javascript,json,xml,node.js,parsing,Javascript,Json,Xml,Node.js,Parsing,我将json文件转换为xml文件,在我的json文件中,我有: "settingsData": { "settingsname": "", "username": "Dave", "password": "", "domain": "Benji", } 我的输出是: <data name="settingsname" value=""/> <data name="username" value="Dave"/> <data

我将json文件转换为xml文件,在我的json文件中,我有:

"settingsData": { 
    "settingsname": "",
    "username": "Dave",
    "password": "",
    "domain": "Benji",
}
我的输出是:

 <data name="settingsname" value=""/>
 <data name="username" value="Dave"/>
 <data name="password" value=""/>
 <data name="domain" value="Benji"/>
输出需要是:

<data name="username" value="Dave"/>
<data name="domain" value="Benji"/>
提前谢谢


只需迭代数组并检查属性是否存在:

var settingsData = {
    settingsname: '',
    username: 'Dave',
    password: '',
    domain: 'Benji'
};

function extractData(data, settingsData) {
    var settings = [];
    for (var key in settingsData ) {
       if (data.hasOwnProperty(key) && settingsData[key].length > 0) {
           settings.push({name: key, value: data[key]});
       }
    }
    return settings;
}

对代码进行了几次编辑-我假设您正在从其他地方传递
数据
,因此您需要在
设置数据
中迭代键,然后检查以确保键的值存在于
数据
中。通常我非常乐意为您的答案投票-但在这种情况下,我所构建的内容与您的答案(以及OP需要的答案)之间存在着足够大的差异。事实上,如果我把它留下,只是直接复制了一份,那是一回事,但我没有。别见怪
 if (settingsData.settingsname !== ""){
    settings.push({
        name: 'settingsname',
        value: data.settingsname
    });
 }
var settingsData = {

    settingsname: '',
    username: 'Dave',
    password: '',
    domain: 'Benji'
};

function extractData(){

    var arr = [];

    for (var key in settingsData ) {
       if (settingsData.hasOwnProperty(key)) {
           if (settingsData[key]) arr.push(settingsData[key]);
       }
    }

    console.log(arr);
}

extractData(); // ["Dave", "Benji"]
var settingsData = {
    settingsname: '',
    username: 'Dave',
    password: '',
    domain: 'Benji'
};

function extractData(data, settingsData) {
    var settings = [];
    for (var key in settingsData ) {
       if (data.hasOwnProperty(key) && settingsData[key].length > 0) {
           settings.push({name: key, value: data[key]});
       }
    }
    return settings;
}