2014-04-17 67 views
0

我給了一個JSON數組,其中一些值爲空。這些值現在只是空的,而不是null,這使得JSON無效。例如:正則表達式用空值替換所有空的JSON數組值

[ 
    "Name", 
    , 
    "card", 
    , 
    , 
    342, 
    2334, 
    0 
] 

如果可能的話,我正在尋找一個正則表達式用NULL替換空的空間:

[ 
    "Name", 
    null, 
    "card", 
    null, 
    null, 
    342, 
    2334, 
    0 
] 

新行和縮進不存在實際JSON。

+0

您使用哪種語言? – anana

+0

我正在使用Java正則表達式。 – Duncan

+2

',,'=>',null,'和',]'=>',null]'? –

回答

0

注意:如果您在OP中有空白區域,這可以工作。否則,你會想要使用@ anana的回答或@ BillCriswell的評論。

替換:

^(\s*)(?=,) 

有了:

$1null 

這看起來在每行(^)的開頭,後面通過捕捉0+空格字符((\s*)),而放眼望去,看下一個字符是逗號((?=,))。

這將需要是全局匹配(g修飾符),並且根據語言的不同,您可能需要使^匹配每個新行(m修飾符)。

實施例:Regex101

+0

我認爲這不會工作,因爲實際文件中沒有空格。 – anana

+0

好點@anana。 – Sam

3

嘗試更換任何空字符串或空格之前和之後逗號(或由[,或者如果在開始時或在列表的末尾發生準確它])與空。 它應該工作,無論實際的JSON字符串是否有空格。

String result = str.replaceAll("(?<=,|\\[)\\s*(?=,|\\])","null") 
+1

這不是隻是刪除字段,而不是用'null'替換?不應該用'「null」替換它,''? – Sam

+0

@Sam:你說得對,對不起,編輯 – anana

+0

這是現在。我錯過了OP中沒有空白的提示,但是我會把答案留在那裏作爲參考。 – Sam

相關問題