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

时间:2017-07-13 09:50:05

标签: java json regex string

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

JSON字符串输入:

<ListItem key={key} item={each(item)} arrival={item.arrival}/>

我希望输出如下:

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

删除了空列表

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

2 个答案:

答案 0 :(得分:0)

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

搜索:

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

并替换为空。即&#34;&#34;

Demo

答案 1 :(得分:0)

正则表达式听起来像是一个有趣的选择来治疗json,但如果你愿意,你可以做以下事情:

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

什么都不替换"[^"]*"\s*:\s*\[\s*\]\s*,?\s*\s*匹配一系列空格/制表符/新行,,?匹配,当有昏迷时)

匹配例如像 "key3" : [ ],
"key5" : []

"s0me_Other Key":[   

],

所以删除所有找到的内容,包括潜在的新行字符!

但也许问题是,如果其他人中的空数组在删除一次空数组后会为空,例如:

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

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

// will become
"key": {}