通过正则获取JSONString中指定key对应的value

5,572 阅读1分钟

工具类

@Slf4j
public final class PatternHelper {
    /**
     * description  在Json字符串中匹配value
     * date         2020/2/27
     *
     * @param jsonStr   JSON字符串
     * @param fieldName 要匹配的属性名称
     * @return java.lang.String 返回值
     */
    public static String getValueFromJsonStr(String jsonStr, String fieldName) {
        if (StringUtils.isEmpty(fieldName)) {
            return fieldName;
        }
        List<String> fieldValues = new ArrayList<>();
        String regex = "(?<=(\"" + fieldName + "\":\")).*?(?=(\"))";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(jsonStr);
        while (matcher.find()) {
            if (StringUtils.isNotEmpty(matcher.group().trim())) {
                return matcher.group().trim();
            }
        }
        return "";
    }
}

参考文章

在线正则表达式测试

正则表达式30分钟入门教程

java正则表达式获取json字符串中指定key的value