Java 如何处理包含@的JSON-LD

Java 如何处理包含@的JSON-LD,java,jsonpath,Java,Jsonpath,我有以下JSON-LD文档,在ie中完全有效: 我试图使用JsonPath从这个文档中获取节点,但是当我想用谓词来做一个过滤器时,我遇到了麻烦,这些谓词与其中包含@的字段相匹配 上面链接的JSON-LD文档有两个订单,但理想情况下,我希望获得orderDelivery.provider.employee[@id]是我作为输入提供的给定id的所有订单 或者,我想获取orderDelivery[@type]为“ParcelDelivery”的所有订单,或者我提供的其他内容作为过滤器的输入 到目前为

我有以下JSON-LD文档,在ie中完全有效:

我试图使用JsonPath从这个文档中获取节点,但是当我想用谓词来做一个过滤器时,我遇到了麻烦,这些谓词与其中包含@的字段相匹配

上面链接的JSON-LD文档有两个订单,但理想情况下,我希望获得orderDelivery.provider.employee[@id]是我作为输入提供的给定id的所有订单

或者,我想获取orderDelivery[@type]为“ParcelDelivery”的所有订单,或者我提供的其他内容作为过滤器的输入

到目前为止,我编写的代码如下所示: JsonArray getOrdersByFoo(字符串orderDeliveryType)引发NoOrdersForDriverFoundException{ InputStream ordersAsStream=null;//这是我将JSON-LD文档读入的地方

    Filter ordersByOrderDeliveryTypeFilter = Filter.filter(Criteria.where("orderDelivery[@type]").eq(orderDeliveryType));
    List<Map<String, Object>> orders = JsonPath.parse(ordersAsStream).read("$[*][?]", ordersByOrderDeliveryTypeFilter);
    if(orders == null || orders.isEmpty()) {
        throw new NoOrdersForDriverFoundException();
    }
    JsonReader jsonReader = Json.createReader(ordersAsStream);   
    JsonArray ordersAsJsonArray = jsonReader.readArray();        

    return ordersAsJsonArray;        
}
Filter ordersByOrderDeliveryTypeFilter=Filter.Filter(Criteria.where(“orderDelivery[@type]”)eq(orderDeliveryType));
List orders=JsonPath.parse(ordersAsStream.read(“$[*][?]”),ordersByOrderDeliveryTypeFilter);
if(orders==null | | orders.isEmpty()){
抛出新的NoOrdersForDriverFoundException();
}
JsonReader-JsonReader=Json.createReader(ordersAsStream);
JsonArray ordersAsJsonArray=jsonReader.readArray();
退货订单sasjsonarray;
}
Filter ordersByOrderDeliveryTypeFilter=Filter.Filter(Criteria.where(“orderDelivery['@type'])).eq(orderDeliveryType));
List orders=JsonPath.parse(ordersAsStream.read(“$[*][?]”),ordersByOrderDeliveryTypeFilter);
if(orders==null | | orders.isEmpty()){
抛出新的NoOrdersForDriverFoundException();
}
JsonReader-JsonReader=Json.createReader(ordersAsStream);
JsonArray ordersAsJsonArray=jsonReader.readArray();
退货订单sasjsonarray;
}

Filter ordersByOrderDeliveryTypeFilter = Filter.filter(Criteria.where("orderDelivery['@type']").eq(orderDeliveryType));
List<Map<String, Object>> orders = JsonPath.parse(ordersAsStream).read("$[*][?]", ordersByOrderDeliveryTypeFilter);
if(orders == null || orders.isEmpty()) {
    throw new NoOrdersForDriverFoundException();
}
JsonReader jsonReader = Json.createReader(ordersAsStream);   
JsonArray ordersAsJsonArray = jsonReader.readArray();        

return ordersAsJsonArray;