Mysql + json格式化

时间:2013-11-29 05:12:36

标签: mysql json node.js

在我的节点应用程序中,我正在使用mysql。我从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;

帮我解决这个问题..提前谢谢..

1 个答案:

答案 0 :(得分: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"));