2017-01-12 3 views
0

nodeJSで、2つのポイントを持つか、または空白または空のすべてのキーを削除する必要があります。いくつかのキーと一致するキーを削除する

{ 
    "cmd": [ 
     { 
      "key:test": "False", 
      "id": "454", 
      "sales": [ 
       { 

        "customer_configuration": { 
         "key:points": "test value", 
         "": "empty key", 
         "some_field": "test" 
        } 
       } 
      ] 
     } 
    ] 
} 

ターゲットJSON::

{ 
    "cmd": [ 
     { 
      "id": "454", 
      "sales": [ 
       { 
        "customer_configuration": { 
         "some_field": "test" 
        } 
       } 
      ] 
     } 
    ] 
} 

はあなたがどんなpropsitionsを持っているでしょう

私はこのJSONを持っていますか?

敬具

+1

'JSON.stringify()'あなたはシリアル化されたプロパティをフィルタリングすることができますの2番目のパラメータ。 – Sirko

+0

ありがとう@Sirkoそれは動作します。 –

答えて

4

あなたはあなたのデータを検索し、delete特定のプロパティするfor...inループを使用して再帰関数を作成することができます。

var obj = { 
 
    "cmd": [{ 
 
    "key:test": "False", 
 
    "id": "454", 
 
    "sales": [{ 
 

 
     "customer_configuration": { 
 
     "key:points": "test value", 
 
     "": "empty key", 
 
     "some_field": "test" 
 
     } 
 
    }] 
 
    }] 
 
} 
 

 
function deleteKeys(data) { 
 
    for (var i in data) { 
 
    if (i.indexOf(':') != -1 || i == '') delete data[i] 
 
    if (typeof data[i] == 'object') deleteKeys(data[i]); 
 
    } 
 
} 
 

 
deleteKeys(obj) 
 
console.log(obj)

+0

オリジナルのオブジェクトを保持し、関数内に新しいオブジェクトを作成する場合は、この質問をチェックする必要があります。http://stackoverflow.com/questions/122102/what-is-the-most-efficient-way-to-deep-clone-オブジェクト内のjavascript –

+0

Nenadが動作してくれてありがとう、JSON.stringify(obj)も試してみた –

+0

ようこそ。 –

関連する問題