【发布时间】:2020-01-28 15:59:49
【问题描述】:
给定这个示例输入字符串。
String str =
"[{\"ID\":\"A001\",\"Name\":\"Captain America\",\"State\":\"Brooklyn\"},
{\"ID\":\"A002\",\"Name\":\"Iron Man\",\"State\":\"New York\"}]"
我正在尝试使用正则表达式来提取与键“名称”关联的所有值。
Pattern p = Pattern.compile(".*\"name\":(\".*\").*");
Matcher m = p.matcher(str);
if(m.find()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}
我正在尝试实现以下输出:
Captain America
Iron Man
但上面的代码却产生了这个:
"Iron Man","state":"New York"
还希望获得有关直接在 Java JSONObject 上使用相同字符串数据执行类似操作的技术建议。
【问题讨论】:
-
不要使用正则表达式解析 JSON。只是不要。
-
GSON 是一个很好的 JSON 解析器。
-
这在字符串中不可能吗?
-
我在这里处理 HTTPResponse。在这种情况下,我的 JSON 如下 {"headers":{} ,"body": "[{\"ID\":\"A001\",\"Name\":\"Captain America\",\ "州\":\"布鲁克林\"},{\"ID\":\"A002\",\"姓名\":\"钢铁侠\",\"州\":\"纽约\" }]" ,"status":200} 我将如何帮助这里的有需要的人
-
根据我的理解,body 的值是 String 对吧?