Java 删除空列表json正则表达式?

Java 删除空列表json正则表达式?,java,json,regex,string,Java,Json,Regex,String,我想解析一个json字符串并删除空列表。例如: JSON字符串输入: { "rootname" : { "key1" : [ "lbl1", "lbl2" ], "key2" : 10, "key3" : [ ], "key4" : "hello", "key5" : [] } } 我希望输出如下: { "rootname" : { "key1" : [ "lbl1", "lbl2" ], "key2" : 10, "

我想解析一个json字符串并删除空列表。例如:

JSON字符串输入:

{
  "rootname" : {
    "key1" : [ "lbl1", "lbl2" ],
    "key2" : 10,
    "key3" : [ ],
    "key4" : "hello",
    "key5" : []
  }
}
我希望输出如下:

{
  "rootname" : {
    "key1" : [ "lbl1", "lbl2" ],
    "key2" : 10,
    "key4" : "hello"
  }
}
空列表中列出了已删除的行


在java中如何使用正则表达式?

您需要在这里解析json,而不是使用正则表达式。然而,regex可以通过以下方式解决这一问题:

通过以下方式搜索:

\"[^"]*\"\s*:\s*\[\s*\],?
并替换为空。i、 e“


Regexp听起来是处理json的一个有趣的选择,但如果您愿意,可以执行以下操作:

/"[^"]*"\s*:\s*\[\s*\]\s*,?\s*//g
将“[^”]*”\s*:\s*\[\s*\]\s*,?\s*替换为零 (
\s*
匹配一系列空格/制表符/新行,
,?
是否存在昏迷时匹配)

匹配,例如像
“键3”:[],

“键5”:[]

"s0me_Other Key":[   

],
因此,删除所有发现的,包括潜在的以下新行字符

但如果在删除一次空数组后,其他数组中存在空数组,则可能会出现问题,如:

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


为什么要用Regex来做这件事?为什么要用Regex来做这件事?解析JSONcheck if JSONArray.isNull();如果为真,则删除它该答案与之前提供的其他答案有何不同?是的,只是等效;我想,当我发布时,没有其他答案^^没什么大不了的,伙计,冷静……顺便说一句,有一个!按年龄排序:)
"key": {
  "key2": []
}

// will become
"key": {}