You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中JSON值含连字符时如何正确编写JSON Path?

Java中JSON值含连字符时的JSONPath正确写法

你的com.jayway.jsonpath.InvalidPathException异常并非由连字符导致,而是JSONPath语句存在多处错误,以下是修正方案和问题解析:

错误点解析

  1. 比较运算符误用:JSONPath中判断相等必须使用==,你用了单个=,这会导致语法解析失败
  2. 属性路径错误:目标barcode是eslTag的子属性,不能直接写@.barcode,需改为@.eslTag.barcode
  3. Null判断错误:判断属性非空不能用!='null'(这是判断字符串不等于"null"),正确写法是@.eslTag != null(直接判断属性不是JSON原生null值)
  4. 层级缺失:你的JSON数据中assignments是嵌套两层的结构,原路径只遍历了一层,无法定位到目标节点

修正后的JSONPath语句

$.data.storeGtin.assignmentInfo.assignedLocations[*].assignments[*].assignments[?(@.eslTag != null && @.eslTag.barcode == 'w422-5r72')].modular.category.department.departmentNumber

属性名带连字符的处理(补充)

如果是属性名本身包含连字符(比如属性名为bar-code),需要用引号包裹属性名,写法示例:

@.eslTag['bar-code'] == 'w422-5r72'

内容的提问来源于stack exchange,提问作者Mahen C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:03:14