答案 0 :(得分:1)
是否允许Regex(核心Java API的一部分)?您应该能够使用它从更大的字符串中提取String。
Pattern codePattern = Pattern.compile("\"code\": \".*\"");
Matcher matcher = codePattern.matcher(json);
if (matcher.find()) {
System.out.println("\ncode: " + matcher.group(0));
}
(冲洗并重复以获取信息和状态)
请注意我离开了我的IDE,因此无法测试此实际的REGEX方面,但模式/匹配器代码应该是合理的(基于https://stackoverflow.com/a/4662265/1600472)。
答案 1 :(得分:1)
根据Crazy Dino的评论,这是我问题的正确解决方案:
String json = str1; // sample json string
Pattern codePattern = Pattern.compile("\"code\"\\s*:\\s*\"([^,]*)\",");
Pattern messagePattern = Pattern.compile("\"message\"\\s*:\\s*\"([^,]*)\",");
Pattern statusPattern = Pattern.compile("\"status\"\\s*:\\s*\"(FAILURE)\"");
Matcher code_matcher = codePattern.matcher(json);
Matcher message_matcher = messagePattern.matcher(json);
Matcher status_matcher = statusPattern.matcher(json);
if (code_matcher.find() && message_matcher.find() && status_matcher.find()) {
System.out.println("\nException found!");
System.out.println("\n" + code_matcher.group(1));
System.out.println("\n" + message_matcher.group(1));
System.out.println("\n" + status_matcher.group(1));
}
输出:
Exception found!
INVALID_PARAMETER_VALUE
Invalid value for parameter: language_code
FAILURE