将json转换为xml并删除空string

我将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"/> 

这是我的function:

 var settings = []; function extractData(data, settingsData){ settings.push({ name: 'settingsname', value: data.settingsname }); settings.push({ name: 'username', value: data.username }); settings.push({ name: 'password', value: data.password }); settings.push({ name: 'domain', value: data.domain }); return settings; } 

输出需要是:

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

我的问题是我如何删除空string或如何检查是否是一个空string,然后不将它添加到数组?

我使用了类似下面的语句,但它不起作用:

  if (settingsData.settingsname !== ""){ settings.push({ name: 'settingsname', value: data.settingsname }); } 

提前致谢!

只需遍历数组并检查属性是否存在:

 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; } 

的jsfiddle

 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"]