JAVA中使用JSONPath.eval()取值路径中存在中划线(短横线)'-'

 

 

如果路径含有中划线,将无法取到值

如:$.aa964cf2-bf62-36bd4811.53672-bf62-42906dc.6458b-82c1-3a157e2a

 这时候就需要转换下

变成

$['aa964cf2-bf62-36bd4811']['53672-bf62-42906dc']['6458b-82c1-3a157e2a']

 

 

转换的java代码如下:

复制代码
/**
     * 转换表达式在json,因为jsonPath不支持 "-"
     * @param expression 带有特殊字符的路径
     * @return  返回转换过的路径
     */
    public static String convertExpression(String expression){
        if (StringUtils.isBlank(expression)) {
            return null;
        }
        String[] split = expression.split("\\.");
        if (split.length==0) {
            return null;
        }

        StringJoiner joiner=new StringJoiner("']['","$['","']");

        for (String str : split) {
            if ("$".equalsIgnoreCase(str)) {
                continue;
            }
            joiner.add(str);

        }

        return joiner.toString();
    }
复制代码

 

posted @   yvioo  阅读(1230)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-04-23 Xshell连接Ubuntu服务器连接不上 显示拒绝了密码
2019-04-23 Centos上传下载命令
点击右上角即可分享
微信分享提示