10

我以前从未使用过正则表达式,我希望拆分一个包含一个或多个 JSON 对象的文件,JSON 对象不是用逗号分隔的。所以我需要将它们拆分为“}{”并保留两个花括号。这是字符串的样子:

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

我想要一个字符串数组,比如使用string.split()

["{id:"123",name:"myName"}", "{"id:"456",name:"anotherName"}"]
4

1 回答 1

15

如果您的对象并不比您显示的更复杂,您可以使用如下环顾四周

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"}

如果您的对象更复杂,则正则表达式可能不起作用,您将不得不解析您的字符串。

于 2012-11-14T17:59:05.300 回答