2013-11-29 167 views
0

在我的节点应用程序中,我使用的是mysql。我从mysql中检索数据并将每行转换为json(正常工作)。但是我的要求是我必须打印带有值的字段,否则不要。Mysql + json格式化

考虑: 我的SQL结果..

level0:"xxxxxx" level1:"fffffff" level3:"btggtgt" level:"" 

现在我得到的JSON是:

[ 
{  
level0="xxxxxxx", 
level1="fffffff", 
level3="btggtgt". 
level4="" 
} 
] 

但我需要输出为:

[ 
    { 
    level0="xxxxxxx", 
    level1="fffffff", 
    level3="btggtgt"  
    } 
    ] 

我有省略level4,因为它的值是“”(空)。

我的代码是:

connection.query("select * from levels where level0 = '" + level0 + "' and level1 = '"+level1+"' and level2 = ''", function(err, row1,   fields) { 

    res.writeHead(200, { 'Content-Type': 'application/json'}); 
    res.end(JSON.stringify(row1,null,"\n")); 

    }); 


var query5result; 
    querylevel5(function(result5) 
    { 
for (var level in result5) 
{ 
console.log("ssssssss="+util.inspect(result5[level])) 
    if (result5[level] == null || result5[level] == '') 
    { 
     delete result5[level]; 
    } 
} 
query5result=result5; 

帮我解决this..Thanks提前..

+0

店的方式来循环mysql导致一个数组然后过滤它,并做你想要的 – Rafee

+0

在你的表中,是级别“空白”或是它是“NULL” –

+0

谢谢@om_deshpande其空白.. – Subburaj

回答

0

这里并删除这个空的水平

connection.query("select * from levels where level0 = '" + level0 + "' and level1 = '"+level1+"' and level2 = ''", function(err, row1,   fields) { 
for (var level in row1) 
{ 
    if (row1[level] == null || row1[level] == "") 
    { 
     delete row1[level]; 
    } 
} 
)}; 
//...then go on: 
res.end(JSON.stringify(row1,null,"\n")); 
+0

谢谢@ Igoel..whats水平在(var1在row1).. – Subburaj

+0

Igoel看到可能编辑后..我试过以上码。它不工作.. – Subburaj

+0

你已经查询过第一行中的行吗? 所以看看我的编辑 –