我以前从未使用过正则表达式,并且正在寻找一个包含一个或多个JSON对象的文件,这些JSON对象之间没有逗号分隔。因此,我需要将它们在“} {”之间分割,并保持两个大括号。字符串如下所示:

{id:"123",name:"myName"}{id:"456",name:"anotherName"}

我想要一个像使用string.split()的字符串数组
["{id:"123",name:"myName"}", "{"id:"456",name:"anotherName"}"]

最佳答案

如果您的对象并不比显示的对象复杂,则可以使用lookarounds像这样:

String[] strs = str.split("(?<=\\})(?=\\{)");

范例:
String str = "{id:\"123\",name:\"myName\"}{id:\"456\",name:\"yetanotherName\"}{id:\"456\",name:\"anotherName\"}";
String[] strs = str.split("(?<=\\})(?=\\{)");
for (String s : strs) {
    System.out.println(s);
}

打印
{id:"123",name:"myName"}
{id:"456",name:"anotherName"}
{id:"456",name:"yetanotherName"}

如果您的对象更复杂,则正则表达式可能无法工作,并且您必须解析字符串。

10-04 11:30
查看更多