我以字符串格式获取json,我想从中获取某些值,我不想使用JSONObject和相关的org.json实现,这是我正在尝试的方法:
String text=execution.getVariable("documents").toString();
String finalResult=text.substring( text.indexOf(":")+1,text.length());
String Final2=finalResult.replaceAll("=", ":");
String Fin3=Final2.replace("[","");
String Fin4=Fin3.replace("]", "");
System.out.println(Fin4);
System.out.println(Fin4.substring(Fin4.indexOf("id"),Fin4.indexOf(",")));
这是我的json(格式为字符串)输入示例:
[{id:1,"name":"olovia","age":34}];
而且我想从此字符串中获取所有这些(id,name,age)值,我应该如何在没有子字符串的情况下进行操作?
最佳答案
您应该重新考虑为用例使用json解析器。
但是,如果您真的想手动执行此操作,则应使用regex而不是substrings:
@Test
public void should_find_key() throws Exception {
String input = "[{id:1,\"name\":\"olovia\",\"age\":34}]";
Assertions.assertThat(extract("name", input)).isEqualTo("olovia");
}
private String extract(String key, String input) {
Pattern pattern = Pattern.compile("\"" + key + "\":\"(.*?)\"");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
return matcher.group(1);
}
return null;
}