51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2171|回复: 4
打印 上一主题 下一主题

[原创] Day4-6测试积点任务

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-7-4 10:31:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    问题:
    在以下的json中,我需要得到的几个字段是:当set.class.0非空的时候,返回该set列表中的某些字段
    1. {
    2. "code": 0,
    3. "msg": null,
    4. "data": {
    5. "set": [
    6. {
    7. "id": "1566", "type": 1,
    8. "class": { "0": [],"1": [ "460"],"2": ["460","460","461" ] },
    9. },
    10. {
    11. "id": "1788", "type": 1,
    12. "class": { "0": [ "461" ], "1": [], "2": [ "460" ]},
    13. },
    14. {
    15. "id": "1762","type": 1,
    16. "class": { "0": [],"1": [ "461" ], "2": [ "460" ],
    17. },
    18. {
    19. "id": "1790","type": 1,
    20. "class": { "0": [ "460","461"], "1": [], "2": [] },
    21. },
    22. {
    23. "id": "1792","type": 2,
    24. "class": {"0": [ "460", "461"], "1": [],"2": []
    25. },
    26. },]
    27. }}
    复制代码

    既是当存在"0": [ "461" ]与"0": [ "460", "461"]等”0“为非空内容时,取set[0]中的id,type与”0"的属性值,在此例子中,则是得到id=1788,type=1,"0"=461。我用jsonpath仅仅是实现了当set.class.0非空的时候,返回整个set:
    List<Object> list=JsonPath.read(string, "$.data.set[?(@.class.0.length()>0]");
    得到的结果是


    1. {
    2. "id": "1788", "type": 1,
    3. "class": { "0": [ "461" ], "1": [], "2": [ "460" ]},
    4. },
    5. {
    6. "id": "1790","type": 1,
    7. "class": { "0": [ "460","461"], "1": [], "2": [] },
    8. },
    9. {
    10. "id": "1792","type": 2,
    11. "class": {"0": [ "460", "461"], "1": [],"2": []},
    12. }
    复制代码

    疑问:若有使用过jsonpath的人,可否回答下jsonpath是否还可以对已筛选的出的内容再次做检索。或者是还有其他的处理方法。非常感谢!



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-8 10:04
  • 签到天数: 473 天

    连续签到: 2 天

    [LV.9]测试副司令

    2#
    发表于 2018-7-5 09:47:58 | 只看该作者
    可以使用查询命令,重复递归需要保存以往的结果
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 07:50
  • 签到天数: 2818 天

    连续签到: 6 天

    [LV.Master]测试大本营

    3#
    发表于 2018-7-5 11:08:41 | 只看该作者
    应该可以继续进行吧,做个测试就行啊
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1521 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2018-7-5 11:12:17 | 只看该作者
    在for循环里面递归
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 11:23
  • 签到天数: 316 天

    连续签到: 1 天

    [LV.8]测试军长

    5#
    发表于 2018-7-5 14:39:13 | 只看该作者
    已经筛选的结果是list,用list.get(0)的时候,输出的结果因为丢失了原本的双引号,使用jsonpath再处理的时候便报错了。我应该顺便再问多一个,转义问题,怎么保留原本的双引号。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 07:14 , Processed in 0.069526 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表