首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JSON.stringify()的输出中隐藏空值

在JSON.stringify()的输出中隐藏空值
EN

Stack Overflow用户
提问于 2016-12-13 15:30:51
回答 4查看 28K关注 0票数 31

在我的代码中,当选择特定的rowID时,Postgres表行中的所有信息都会被字符串表示。

代码语言:javascript
复制
var jsonRes = result.message.rows;

document.getElementById('panel').innerHTML = '<pre>' + JSON.stringify(jsonRes[0], null, "\t") + '</pre>'

结果如下所示:

代码语言:javascript
复制
{
  "ogc_fid": 143667,
  "relkey": 288007,
  "acct": "000487000A0010000",
  "recacs": "12.5495 AC",
  "shape_star": 547131.567383,
  "shape_stle": 3518.469618,
  "objectid": 307755,
  "zone_dist": "MU-3",
  "pd_num": null,
  "council_da": null,
  "long_zone_": "MU-3",
  "globalid": "{D5B006E8-716A-421F-A78A-2D71ED1DC118}",
  "ord_num": null,
  "notes": null,
  "res_num": null,
  "effectived": 1345766400000,
  "shape.star": 629707.919922,
  "shape.stle": 3917.657332,
  "case_numbe": null,
  "common_nam": null,
  "districtus": null 
}

我是JS的新手,我想知道是否有一种简单的方法可以完全排除包含空值的列-一个大致看起来像这样的函数:

代码语言:javascript
复制
function hide(jsonObject) {
    if (property === null) {
      hide property
  } else {
      return str
  }
}

因此,最终,面板中的对象看起来如下所示:

代码语言:javascript
复制
{
  "ogc_fid": 143667,
  "relkey": 288007,
  "acct": "000487000A0010000",
  "recacs": "12.5495 AC",
  "shape_star": 547131.567383,
  "shape_stle": 3518.469618,
  "objectid": 307755,
  "zone_dist": "MU-3",
  "long_zone_": "MU-3",
  "globalid": "{D5B006E8-716A-421F-A78A-2D71ED1DC118}",
  "effectived": 1345766400000,
  "shape.star": 629707.919922,
  "shape.stle": 3917.657332
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-13 15:45:02

谢谢你的回复。我刚刚意识到JSON.stringify()有一个REPLACER参数(info here)

所以我只加了一句:

代码语言:javascript
复制
function replacer(key, value) {
  // Filtering out properties
  if (value === null) {
    return undefined;
  }
  return value;
}

document.getElementById('panel').innerHTML =
  '<pre>' +
    JSON.stringify(jsonRes[0], replacer, "\t") +
  '</pre>'
;
票数 21
EN

Stack Overflow用户

发布于 2016-12-13 16:25:05

你可以这样做:

代码语言:javascript
复制
let x = {
  'x1':0,
  'x2':null,
  'x3':"xyz", 
  'x4': null
}

console.log(JSON.stringify(x, (key, value) => {
  if (value !== null) return value
}))

票数 50
EN

Stack Overflow用户

发布于 2016-12-13 15:35:43

试试这个:

代码语言:javascript
复制
function getCleanObject(jsonObject) {
    var clone = JSON.parse(JSON.stringify(jsonObject))
    for(var prop in clone)
       if(clone[prop] == null)
           delete clone[prop];
    return JSON.stringify(clone);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41115702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档