我获得了一个JSON数组,其中一些值为空。这些值当前只是空的,而不是null,这使得JSON无效。例如:
[
"Name",
,
"card",
,
,
342,
2334,
0
]
如果可能的话,我正在寻找一个正则表达式来用null替换空格:
[
"Name",
null,
"card",
null,
null,
342,
2334,
0
]
新的行和缩进在实际的JSON中不存在。
答案 0 :(得分:3)
尝试使用空格替换任何前面和后面跟着逗号的空字符串或空格(如果它恰好出现在列表的开头或结尾,请填充[
或]
)。
无论实际的JSON字符串是否具有空格,它都应该有效。
String result = str.replaceAll("(?<=,|\\[)\\s*(?=,|\\])","null")
答案 1 :(得分:0)
注意:如果您的OP中有空格,则此方法有效。否则,您将要使用@ anana的答案或@BillCriswell的评论。
替换:
^(\s*)(?=,)
使用:
$1null
这会查看每一行的开头(^
),然后捕获0+空白字符((\s*)
),同时展望下一个字符是逗号({{1 }})。
这需要是全局匹配((?=,)
修饰符),并且根据语言,您可能需要使g
匹配每个新行(^
修饰符)。< / p>
示例:Regex101