正则表达式用null替换所有空的JSON数组值

时间:2014-04-17 00:13:52

标签: java regex json

我获得了一个JSON数组,其中一些值为空。这些值当前只是空的,而不是null,这使得JSON无效。例如:

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

如果可能的话,我正在寻找一个正则表达式来用null替换空格:

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

新的行和缩进在实际的JSON中不存在。

2 个答案:

答案 0 :(得分:3)

尝试使用空格替换任何前面和后面跟着逗号的空字符串或空格(如果它恰好出现在列表的开头或结尾,请填充[])。 无论实际的JSON字符串是否具有空格,它都应该有效。

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

答案 1 :(得分:0)

注意:如果您的OP中有空格,则此方法有效。否则,您将要使用@ anana的答案或@BillCriswell的评论。

替换:

^(\s*)(?=,)

使用:

$1null

这会查看每一行的开头(^),然后捕获0+空白字符((\s*)),同时展望下一个字符是逗号({{1 }})。

这需要是全局匹配((?=,)修饰符),并且根据语言,您可能需要使g匹配每个新行(^修饰符)。< / p>

示例:Regex101