Я новичок в javascript, и я столкнулся с проблемой, мне нужно удалить все нулевые значения из json файла. Но я не смог его получить, я пробовал разные методы, которые я нашел на сайте, но они не работают для меня. Один из способов, который я нашел ниже. У меня просто проблема, как я уже говорил перед json файлом, я получаю ее с помощью JSON.stringify и с помощью кода, который удаляет null, я получаю это "{\" 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:
{
"name": "Ann",
"children":
[
null,
{
"name": "Beta",
"children":
[
null,
null,
null
]
},
null
]
}
Что я ожидаю:
{
"name": "Ann",
"children":
[
{
"name": "Beta"
}
]
}
JSON.parse
и JSON.stringify
принимают функцию JSON.stringify
для изменения значений:
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 )
Чтобы удалить пустой массив:
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 )
null
, но undefined
или отсутствующие. Попробуй обновление.
splice
нулевые элементы массивов.