五JSONPath使用(Java)
1。开发环境JDK1。8SpringBoot2。1。182。添加依赖dependencygroupIdcom。jayway。jsonpathgroupIdjsonpathartifactIdversion2。6。0versiondependency3。读取JSONStringjsonStr{name:大润发超市,fruits:〔{name:苹果},{name:香蕉}〕};JSONObjectjsonObjectJSONObject。parseObject(jsonStr);DocumentContextdcJsonPath。parse(jsonStr);ListStringjsonPathsJsonHelperUtils。getJsonPath(jsonObject);for(StringjsonPath:jsonPaths){Objectactualdc。read(。jsonPath);System。out。println(。jsonPathactual);}
输出结果如下:10:02:01。133〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔name〕。name大润发超市10:02:01。146〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔fruits〕〔0〕〔name〕。fruits〔0〕。name苹果10:02:01。147〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔fruits〕〔1〕〔name〕。fruits〔1〕。name香蕉4。写入JSONStringjsonStr{name:大润发超市,fruits:〔{name:苹果},{name:香蕉}〕};JSONObjectjsonObjectJSONObject。parseObject(jsonStr);DocumentContextdcJsonPath。parse(jsonStr);dc。set(。name,华润苏果超时);dc。set(。fruits〔1〕。name,葡萄);ListStringjsonPathsJsonHelperUtils。getJsonPath(jsonObject);for(StringjsonPath:jsonPaths){Objectactualdc。read(。jsonPath);System。out。println(。jsonPathactual);}
输出结果如下:10:05:50。665〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔name〕10:05:50。682〔main〕DEBUGcom。jayway。jsonpath。internal。JsonContextSetpath〔name〕newvalue华润苏果超时10:05:50。684〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔fruits〕〔1〕〔name〕10:05:50。685〔main〕DEBUGcom。jayway。jsonpath。internal。JsonContextSetpath〔fruits〕〔1〕〔name〕newvalue葡萄10:05:50。745〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔name〕。name华润苏果超时10:05:50。746〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔fruits〕〔0〕〔name〕。fruits〔0〕。name苹果10:05:50。746〔main〕DEBUGcom。jayway。jsonpath。internal。path。CompiledPathEvaluatingpath:〔fruits〕〔1〕〔name〕。fruits〔1〕。name葡萄
注意:在读取json时,需要通过异常来判断读取的是集合还是对象,参考如下示例:StringjsonStr;Stringexpression;try{Willthrowanjava。lang。ClassCastExceptionListObjectvaluesJsonPath。parse(jsonStr)。read(expression);for(Objectactual:values){ObjectactualJsonPath。parse(jsonStr)。read(expression);}}catch(ClassCastExceptione1){ObjectactualJsonPath。parse(jsonStr)。read(expression);}
RCEP生效后业务迈新台阶百世越南春节单量倍增春节是越南民间最大也最热闹的传统节日。虎年将至,当地各大电商平台已进入购物季长尾阶段。从圣诞假日购物季以来,百世越南的快递单量较平日增长220以上,订单主要集中于服装、家居、礼……
程序员都用什么电脑?适合编程笔记本电脑推荐适合程序员的笔记本电脑首先应该满足小巧轻便这个需求,然后才是性能因素,一个标准的程序员必定能够随时随地改BUG,所以可以优先考虑苹果MacBookPro,由于其MacOS就是L……
欧克科技收首发反馈意见北京商报讯(记者董亮丁宁)证监会官网显示,欧克科技股份有限公司(以下简称欧克科技)深市主板IPO近日拿到了证监会首发反馈意见。招股书显示,欧克科技主要从事生活用纸智能装备……
威努特全新移动存储介质管控方案及新品正式发布8月13日,威努特全新移动存储介质管控方案及自主研发的国内首款移动介质安检站正式发布。区别于市场上传统USB移动存储介质管理系统,威努特移动介质安检站更贴合工业现场需求,以病毒……
遥远的救世主中,芮小丹听到丁元英的音响反应是不是太过夸张?估计大多数人的不理解,其实是基于他们的不了解。我曾经在一个发烧友家里见识过他组装的音响厅效果。他们的专业术语我听不懂,不过60混响(这也是一个术语)一开,完全颠覆了我前半生对声……
加密货币,是金融创新还是庞氏骗局?从单价9000美元到超过6。4万美元,再到一度跌破3万美元,加密货币比特币在一年时间里走出过山车行情。一边造富,一边割韭菜,剧烈波动表象下,比特币真实价值几何?应如何看待加密货……
三星GalaxyS21Ultra5G这个手机可以取代你的单反如果您仍然决定将两次旅行的乐趣和冒险融入您的第一个夏季后的COVID度假之旅,那么也许是时候评估您的智能手机是否能满足两年的价值您即将留下的假期回忆。我做到了。今年夏天早……
龙芯发布新一代处理器芯片可满足云计算性能需求近日,龙芯中科技术股份有限公司正式公布了最新的龙芯3A5000处理器,并基于3A5000推出了新一代服务器处理器龙芯3C5000L。据悉龙芯3C5000L拥有16颗核心,……
让手机应用程序清爽起来来源:人民网人民日报打开常用的手机应用程序(APP),开屏广告有了关闭按钮;关闭开屏广告后,界面变得干净清朗,开启速度也快了不少近期,针对用户反映强烈、投诉较多的手机APP诱导……
vivoX70系列官宣后置蔡司四摄内置V1芯片9月9日发布【手机中国新闻】8月30日上午,vivoX70系列正式揭开面纱。官方表示,vivoX70系列将在今日起开放预约,并将在9月9日正式发布。vivoX70系列目前viv……
7月手机销量,荣耀第三我先阐明观点:荣耀明年就能成为国内第一,小米二季度全球第一。小米主要得益于欧洲和印度市场。7月份国内手机销量公布了,荣耀超越小米,位居第三!OPPO位居第一位……
全幅和残幅,那个更有优势一点?有的新手想买个相机学摄影,认为学好了赚个零花钱。但是在纠结全画幅相机比如a73不管是机身还是镜头都有点小贵,感觉有点肉疼。残幅看好了a6400和xt3,又听说底小一……