正则表达式+解析json
时间: 2023-12-08 12:39:39 浏览: 128
正则表达式和解析JSON是两个不同的概念,但它们可以结合使用来提取JSON数据中的特定字段。下面是一个使用Java语言的例子:
假设我们有以下JSON数据:
```json
{
"name": "John Smith",
"age": 30,
"email": "john.smith@example.com"
}
```
我们想要提取email字段的值。我们可以使用Java中的正则表达式和JSON库来实现:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.json.JSONObject;
public class JsonParser {
public static void main(String[] args) {
String json = "{\"name\":\"John Smith\",\"age\":30,\"email\":\"john.smith@example.com\"}";
String key = "email";
String reg = "(?:\"" + key + "\"):\"(?<val>[^\"]*?)\"";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(json);
if (matcher.find()) {
String email = matcher.group("val");
System.out.println(email); // 输出:john.smith@example.com
}
JSONObject jsonObject = new JSONObject(json);
String email2 = jsonObject.getString("email");
System.out.println(email2); // 输出:john.smith@example.com
}
}
```
在上面的代码中,我们首先使用正则表达式从JSON字符串中提取email字段的值。然后,我们使用JSON库将JSON字符串解析为JSONObject对象,并使用getString()方法获取email字段的值。
阅读全文