ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java(27):Java JsonPath 解析JSON数据

2021-09-23 20:30:01  阅读:279  来源: 互联网

标签:27 Java roleId list json JSON JsonPath null data


Java JsonPath 解析JSON数据

简介:

JSONPath - 用于JSON的XPath,用来解析多层嵌套的json数据;是一种信息抽取类库,是从JSON文档中抽取指定信息的工具. JsonPath有许多编程语言,如Javascript、Python、PHP、Java等

JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。

一、JsonPath安装

添加依赖:

目前在https://github.com/json-path/JsonPath找到最新版本是2.6.0

        <!-- json-path依赖-->

        <dependency>

            <groupId>com.jayway.jsonpath</groupId>

            <artifactId>json-path</artifactId>

            <version>2.6.0</version>

        </dependency>

二、JsonPath使用

调用:

$.data.list[0].roleId

$.roleId

$.data.list[*].roleId

{
    "code": 0,
    "data": {
        "totalCount": 7,
        "pageSize": 10,
        "totalPage": 1,
        "currPage": 1,
        "list": [
            {
                "roleId": "1440544989116395521",
                "roleName": "rolename86918033",
                "roleDescribe": "角色描述",
                "createTime": 1632287664000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "admin",
                "roleName": "管理员角色",
                "roleDescribe": "系统内置角色",
                "createTime": 1588231288000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "auditor",
                "roleName": "审计员角色",
                "roleDescribe": "系统内置角色",
                "createTime": 1588231217000,
                "permissionList": null,
                "permissionIdList": null
            }
        ]
    }
}

 获取json值的代码:

import com.jayway.jsonpath.JsonPath;

       String jsonStr3="";
        //获取单个值
        String roleId1=JsonPath.read(jsonStr3, "$.data.list[0].roleId");
        //获取所有值
        List<String> roleIds=JsonPath.read(jsonStr3, "$.data.list[*].roleId");
// 获取0、2
        List<String> roleId2 = JsonPath.read(jsonStr3,"$.data.list[0,2].roleId");
        // 获取0-2(不含2)
        List<String> roleId3 = JsonPath.read(jsonStr3,"$.data.list[0:2].roleId");
        System.out.println("roleId1:" + roleId1);
        System.out.println("roleIds:" + roleIds);
        System.out.println("roleId2:" + roleId2);
        System.out.println("roleId3:" + roleId3);

参考:

https://zhuanlan.zhihu.com/p/30188199

https://github.com/json-path/JsonPath

Java JsonPath | 强大的解析工具 快速处理 Json 语法使用_Wbw Belief的博客-CSDN博客_java jsonpath

JSON:fastjson、jackson、gson的选择之惑

https://blog.csdn.net/mu_wind/article/details/93725063#3_jsonpath_96

标签:27,Java,roleId,list,json,JSON,JsonPath,null,data
来源: https://blog.csdn.net/fen_fen/article/details/120442736

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有