gpt4 book ai didi

java - 使用正则表达式从 JSON 响应中提取所有状态代码

转载 作者:行者123 更新时间:2023-12-01 17:59:35 24 4
gpt4 key购买 nike

我想从 JSON 响应( Elasticsearchbulk request 的响应)中提取所有状态代码,以便我可以计算已创建的文档数量和错误数量。

我应该在以下代码中使用哪个正则表达式?

import java.util.regex.Matcher;
import java.util.regex.Pattern;
...

List<String> allCodes = new ArrayList<String>();
Matcher m = Pattern.compile("regex").matcher(jsonResponseString);
while (m.find()) {
allCodes.add(m.group());
}

JSON 响应示例:

{
"took": 9,
"errors": false,
"items": [
{
"index": {
"_index": "movies",
"_type": "drama",
"_id": "123",
"_version": 68,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": false,
"status": 200
}
},
{
"index": {
"_index": "movies",
"_type": "drama",
"_id": "456",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true,
"status": 201
}
}
]
}

谢谢!

最佳答案

 List<String> allCodes = new ArrayList<String>();

Matcher m = Pattern.compile("\"status\": (\\d.*)").matcher(YOUR_TEXT);

while (m.find()) {
allCodes.add(m.group(1));
}

System.out.println(allCodes);

但是我会用你想要的信息创建一个 Pojo:

例如

public class Response {

int took;
List<Item> itemList;

class Item{
int status;
}
}

然后使用jackson进行转换。

顺便说一句,elasticsearch有一个java api:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html所以你不需要处理解析等。

关于java - 使用正则表达式从 JSON 响应中提取所有状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42098655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com