空の配列を含むjsonオブジェクトを動的に削除したい。私はこのリンクsimilar question hereを見つけました。しかし私の場合、それは私のためには機能しません。nest jsonオブジェクトで空の配列を含むオブジェクトを再帰的に削除
私はJSONオブジェクトがあるとします。
{"op":"1","parameters":[{"op":"2-1","parameters":[]},{"op":"2-2","parameters":[1,2]}]}
私は再帰的にものを行うためのサンプルコードを書いてきました:
function removeEmptyArray(cJSON){
if(!cJSON)
return cJSON;
for(var i=cJSON.parameters.length-1;i>=0;i--){
if(!(cJSON.parameters[i].parameters instanceof Array))
continue;
if(cJSON.parameters[i].parameters.length==0){
cJSON.parameters.splice(i,1);
}else{
cJSON.parameters[i] = removeEmptyArray(cJSON.parameters[i]);
}
}
return cJSON;
}
期待した結果が、コードが正常に動作し、{"op":"1","parameters":[{"op":"2-2","parameters":[1,2]}]}
です。
が、私はこれがobj持っている:
{"op":"1","parameters":[{"op":"2-1","parameters":[{"op":"3-1","parameters":[]}]},{"op":"2-2","parameters":[1,2,3]}]}
出力は{"op":"1","parameters":[{"op":"2-1","parameters":[]},{"op":"2-2","parameters":[1,2,3]}]}
明らかにそれが動的に "OP" "2-1" であるJSONのOBJを削除しませんです。
どのように純粋なJavaScriptを使用して、エレガントな方法でそれを解決するには?
あなたの構造の可能な深さは何ですか?それは不確定ですか?木のような構造を実装しようとしています – Rouz
[「JSONオブジェクト」のようなものはありません](http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json /) – Andreas
@Rouz深さは不明ですが、無限ではありません。 – Sunson