执行REST操作时,响应中可以使用以下元素,但是我想通过忽略前导和尾随空格来捕获json属性的值。
响应可以是" bs_id":" 1234"或" bs_id" :" 1234"或" bs_id":" 1234"
我需要捕获bs_id键的值,忽略任何白色空格模式。
如何做到这一点?
答案 0 :(得分:1)
我会用这个:
private static final Pattern BS_ID_PATTERN =
Pattern.compile("\"bs_id\" *: *\"([^"]*)\"");
private String extractBsId(String jsonString) {
Matcher bsIdMatcher = BS_ID_PATTERN.matcher(jsonString);
if (bsIdMatcher.find()) {
return bsIdMatcher.group(1);
}
// "bs_id" not found, so return null or an error as appropriate.
return null;
}
这允许在冒号之前和/或之后使用空格的任何数量(零或更多,使用正则表达式*
匹配器),但如果您只想允许零或一个空格,则可以替换{{ 1}}匹配*
匹配器。
顺便说一句,看到用于匹配空格的正则表达式?
是很常见的,但要注意这一点,因为它不仅会匹配标准空格字符,还会匹配换行符,回车符,制表符和竖线标签,这通常不是人们真正想要的。