admin管理员组文章数量:1355540
I am new to javascript and I have encountered a problem I need to remove all null values from a json file. But I have not been able to get it I have tried different methods that I found on the site but they do not work for me. One of the ways I found below. I just have a problem as I said before the json file I get it with JSON.stringify and by using the code that removes null I get this "{\" name \ ": \" Ann \ " , \ "children \": [null, {\ "name \": \ "Beta \", \ "children \": [null, null, null]}, null]} ".
function Parent(name){
this.name = name;
this.children=new Array(null,null,null);
}
Parent.prototype.getName = function(){
return this.name;
};
Parent.prototype.setName = function(name) {
this.name=name;
};
Parent.prototype.getChildren = function(){
return this.children;
};
Parent.prototype.setChildren = function(parent) {
this.children=parent;
};
var parent = create(aux,new Parent(""));// This method create tree parent
var o = parent;
j = JSON.stringify(o, (k, v) => Array.isArray(v)
&& !(v = v.filter(e => e !== null && e !== void 0)).length ? void 0 : v, 2 )
alert (j);
Json file:
{
"name": "Ann",
"children":
[
null,
{
"name": "Beta",
"children":
[
null,
null,
null
]
},
null
]
}
What I expect:
{
"name": "Ann",
"children":
[
{
"name": "Beta"
}
]
}
I am new to javascript and I have encountered a problem I need to remove all null values from a json file. But I have not been able to get it I have tried different methods that I found on the site but they do not work for me. One of the ways I found below. I just have a problem as I said before the json file I get it with JSON.stringify and by using the code that removes null I get this "{\" name \ ": \" Ann \ " , \ "children \": [null, {\ "name \": \ "Beta \", \ "children \": [null, null, null]}, null]} ".
function Parent(name){
this.name = name;
this.children=new Array(null,null,null);
}
Parent.prototype.getName = function(){
return this.name;
};
Parent.prototype.setName = function(name) {
this.name=name;
};
Parent.prototype.getChildren = function(){
return this.children;
};
Parent.prototype.setChildren = function(parent) {
this.children=parent;
};
var parent = create(aux,new Parent(""));// This method create tree parent
var o = parent;
j = JSON.stringify(o, (k, v) => Array.isArray(v)
&& !(v = v.filter(e => e !== null && e !== void 0)).length ? void 0 : v, 2 )
alert (j);
Json file:
{
"name": "Ann",
"children":
[
null,
{
"name": "Beta",
"children":
[
null,
null,
null
]
},
null
]
}
What I expect:
{
"name": "Ann",
"children":
[
{
"name": "Beta"
}
]
}
Share
Improve this question
edited Dec 3, 2017 at 0:53
pete
asked Dec 2, 2017 at 22:15
petepete
3653 silver badges14 bronze badges
12
-
Because I don't think you want to delete object properties. It looks like you need to
splice
out null elements of arrays instead. – Andy Commented Dec 2, 2017 at 22:25 - Are you sure you want to modify the original object? I'd consider creating a new filtered object instead of updating and deleting properties from the original reference – Matias Cicero Commented Dec 2, 2017 at 22:30
- @MatiasCicero Relax, it's from a JSON file, so once it is parsed, it's already a copy. – blex Commented Dec 2, 2017 at 22:33
- do you get the object from JSON.parse ? – Slai Commented Dec 2, 2017 at 22:34
- 1 @blex From the point of view of the method, this can be any object. I'm just saying so the caller of the method does not get any unexpected behavior. Immutability over mutability, if possible. – Matias Cicero Commented Dec 2, 2017 at 22:36
1 Answer
Reset to default 7JSON.parse
and JSON.stringify
accept replacer function to modify the values:
j = '{ "name": "Ann", "children": [ null, { "name": "Beta", "children": [ null, null, null ] }, null ] }'
o = JSON.parse(j, (k, v) => Array.isArray(v) ? v.filter(e => e !== null) : v )
console.log( o )
o = { "name": "Ann", "children": [ null, { "name": "Beta", "children": [ null, null, null ] }, null ] }
j = JSON.stringify(o, (k, v) => Array.isArray(v) ? v.filter(e => e !== null) : v, 2 )
console.log( j )
To remove the empty array too:
o = { "name": "Ann", "children": [ null, { "name": "Beta", "children": [ null, null, null ] }, null ] }
j = JSON.stringify(o, (k, v) => Array.isArray(v)
&& !(v = v.filter(e => e)).length ? void 0 : v, 2 )
console.log( j )
本文标签: Remove null values from json file javascriptStack Overflow
版权声明:本文标题:Remove null values from json file javascript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744048885a2582049.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论