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

如何用Jayway JSONPath获取指定条件下的JSON父节点属性

Jayway JSONPath 实战方案

一、获取eslTag等于"null"对应的sgln195值

要提取符合条件的sgln195,可以通过嵌套过滤定位目标节点:

JSONPath表达式

$.data.storeGtin.assignmentInfo.assignedLocations[?(@.assignments[?(@.eslTag == 'null')])].storeLocation.sgln195

表达式说明

  1. 遍历assignedLocations数组,过滤出其中assignments子数组存在eslTag == 'null'的元素
  2. 从筛选出的assignedLocations元素中,提取storeLocation.sgln195的值

Java代码示例

import com.jayway.jsonpath.JsonPath;
import java.util.List;

public class JsonPathDemo {
    public static void main(String[] args) {
        String jsonStr = "你的JSON数据字符串";
        // 读取符合条件的sgln195列表
        List<String> targetSgln195 = JsonPath.read(jsonStr, "$.data.storeGtin.assignmentInfo.assignedLocations[?(@.assignments[?(@.eslTag == 'null')])].storeLocation.sgln195");
        System.out.println(targetSgln195); // 输出:["5577557755775W.SF.E.25.1"]
    }
}

二、基于数组值获取上级节点

Jayway JSONPath支持^操作符实现向上导航,快速定位当前节点的父节点、祖父节点等上级节点。

场景1:获取eslTag为"null"的项所在的assignedLocations节点

JSONPath表达式

$.data.storeGtin.assignmentInfo.assignedLocations[*].assignments[?(@.eslTag == 'null')].^.^

表达式说明

  • @.^:表示当前节点的父节点(这里指assignments元素的父节点assignedLocations)
  • 连续两个^:从assignments元素向上两级,直接定位到对应的assignedLocations节点

场景2:获取eslTag为"null"的项的父节点(assignments所在的上级对象)

JSONPath表达式

$.data.storeGtin.assignmentInfo.assignedLocations[*].assignments[?(@.eslTag == 'null')].^

Java代码示例

import com.jayway.jsonpath.JsonPath;
import java.util.List;
import java.util.Map;

public class JsonPathParentDemo {
    public static void main(String[] args) {
        String jsonStr = "你的JSON数据字符串";
        // 获取对应的assignedLocations节点
        List<Map<String, Object>> parentNodes = JsonPath.read(jsonStr, "$.data.storeGtin.assignmentInfo.assignedLocations[*].assignments[?(@.eslTag == 'null')].^.^");
        
        for (Map<String, Object> node : parentNodes) {
            System.out.println("节点容量:" + node.get("capacity"));
            Map<String, Object> storeLoc = (Map<String, Object>) node.get("storeLocation");
            System.out.println("对应sgln195:" + storeLoc.get("sgln195"));
        }
    }
}

内容的提问来源于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 23:42:42