2017-07-13 4 views
-5

jsonの文字列を解析して空のリストを削除したい。例:空のリストを削除json regex?

JSON文字列入力:が削除空のリスト

{ 
    "rootname" : { 
    "key1" : [ "lbl1", "lbl2" ], 
    "key2" : 10, 
    "key4" : "hello" 
    } 
} 

{ 
    "rootname" : { 
    "key1" : [ "lbl1", "lbl2" ], 
    "key2" : 10, 
    "key3" : [ ], 
    "key4" : "hello", 
    "key5" : [] 
    } 
} 

私は次のように出力したいです。

どのように正規表現でjavaで行うことができますか?

+0

正規表現と? – QBrute

+1

なぜこれに正規表現を使用しますか? JSONを解析する – Mistalis

+0

JSONArray.isNull();をチェックします。真の場合はそれを削除してください –

答えて

0

regexを使用するのではなく、ここでjsonを解析する必要があります。しかし、これは次のように正規表現によって解決することができます。これにより、

検索:

\"[^"]*\"\s*:\s*\[\s*\],? 

と空で交換してください。すなわち「」

Demo

0
JSONを治療するために、面白い選択肢のような

正規表現の音、あなたがしたい場合は、次のような何かを行うことができます:何も で"[^"]*"\s*:\s*\[\s*\]\s*,?\s*を交換

/"[^"]*"\s*:\s*\[\s*\]\s*,?\s*//g 

\s*マッチングシリーズ空白/タブ/改行の場合、,?が昏睡状態の場合に一致)


のように一致する"key3" : [ ],
"key5" : []

"s0me_Other Key":[ 

], 

だから、改行文字以下の可能性を含め、見つかったすべてを取り除きます!

しかし、一度空の配列を削除した後に空になり、他では空の配列がある場合、おそらく問題は次のように、次のようになります。あなたがそれをやりたいのはなぜ

"key": [ 
    [ ] 
] 
// will be unchanged 

または

"key": { 
    "key2": [] 
} 

// will become 
"key": {} 
+0

その回答は以前に提供された他の回答とどのように異なっていますか? –

+0

ええと、それはまったく同等です。私は私がそれをしたときに、他の答えがなかったと想像すると同時に想像して投稿しました^^ – NatNgs

+0

大した結婚ではない、寒さ... btwあった!ちょうど古いもので並べ替える:) –

関連する問題