拆分格式错误的json



嗨,我有一个json字符串,它看起来像这样

{{"value":1}{"value":2}{"value":3}}

我想拆分每个jsonObject但我不知道怎么做,像这样:

{{"value":1},{"value":2},{"value":3}}
String str = "{{"value":1}{"value":2}{"value":3}}";
String json = '[' + str.substring(1, str.length() - 1).replaceAll("}\{", "},{")+ ']';

这不是100%的语法,但我认为这种方法是正确的。


一种效率较低但合理的方法是使用正则表达式:

Pattern pattern = Pattern.compile("\{"(?<key>[^"]+)":(?<value>\d+)}");
Matcher matcher = pattern.matcher(str);
StringBuilder buf = new StringBuilder().append('[');
int start = 0;
while (matcher.find(start)) {
if (start > 0)
buf.append(',');
String key = matcher.group("key");
String value = matcher.group("value");
buf.append("{"").append(key).append("":").append(value).append('}');
start = matcher.end();
}
String json = buf.append(']').toString();