你能告诉我如何使用JavaScript删除json中所有null值的对象吗?
我需要删除嵌套的对象与null/空键太。
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"text": null,
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"definition": null
},
"GlossSee": "markup",
"window": {
"title": "Sample Konfabulator Widget",
"description": ""
}
}
}
},
"image": {
"src": null,
"name": null,
"alignment": null
},
"text": {
"data": "Click Here",
"size": null,
"style": "bold",
"name": "text1",
"hOffset": "",
"vOffset": "",
"alignment": "center",
"onMouseUp": null
}
}
}
字符串
需要如下输出:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook."
},
"GlossSee": "markup",
"window": {
"title": "Sample Konfabulator Widget"
}
}
}
},
"text": {
"data": "Click Here",
"style": "bold",
"name": "text1",
"alignment": "center"
}
}
}
型
如何在整个json中删除null或空键的对象,甚至是递归的。比如image
对象,它的键为空或null值。
3条答案
按热度按时间km0tfn4u1#
使用
JSON.stringify(value, replacer)
/JSON.parse(text, reviver)
中的replacer
/reviver
可以获得更接近的结果使用JSON.stringify的示例
字符串
t5fffqht2#
您可以通过递归方式检查键的类型,然后选择保留或删除所述键来完成此操作。
您可能还希望剔除
undefined
值,这可以通过更松散的检查,例如data == null
将检查null
和undefined
https://stackoverflow.com/a/359629/15291770字符串
3okqufwl3#
字符串