java,给定字符串中,如何截取出连续的json字符串
时间: 2024-02-20 20:57:07 浏览: 28
在 Java 中,可以使用正则表达式来匹配字符串中的 JSON 字符串。具体的做法是:
1. 定义一个正则表达式,用来匹配 JSON 字符串。例如:`"\\{.*?\\}"`,该正则表达式可以匹配字符串中的 JSON 对象或 JSON 数组。
2. 使用 `Pattern` 类来编译正则表达式,创建一个 `Pattern` 对象。
3. 使用 `Matcher` 类来匹配字符串中的 JSON 字符串。调用 `matcher` 方法,传入要匹配的字符串,返回一个 `Matcher` 对象。
4. 调用 `find` 方法,查找字符串中的 JSON 字符串。如果找到了一个匹配的 JSON 字符串,就可以调用 `group` 方法,获取匹配的字符串。
下面是一个示例代码,可以截取出一个字符串中的所有 JSON 字符串:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class JsonParser {
public static void main(String[] args) {
String str = "这是一个字符串,其中包含一个JSON对象:{ \"name\": \"张三\", \"age\": 18 },还包含一个JSON数组:[{ \"name\": \"李四\", \"age\": 20 }, { \"name\": \"王五\", \"age\": 22 }]。";
String regex = "\\{.*?\\}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
String json = matcher.group();
System.out.println(json);
}
}
}
```
上面的代码会输出字符串中的所有 JSON 字符串:
```
{ "name": "张三", "age": 18 }
{ "name": "李四", "age": 20 }
{ "name": "王五", "age": 22 }
```