2016-05-01 7 views
11

मुझे स्टीफन गोसेनर के जेसनपाथ का उपयोग करके सरणी या सूची आकार खोजने में कोई समस्या है। मैं संस्करण जेसन-पथ-2.0.0 का उपयोग कर रहा हूँ।जेसनपाथ अभिव्यक्ति का उपयोग करके ऐरे आकार - स्टीफन गोसेनर जेसनपाथ

मेरे jsonpath अभिव्यक्ति $.orders.length है और JSON इस तरह दिखता है:

{ 
 
    "orders" : [ 
 
    ... 
 
    ] 
 
}

इसकी निम्नलिखित त्रुटि के साथ विफल:

com.jayway.jsonpath.PathNotFoundException: Property ['length'] not found in path $['orders'] 

और मैं $.orders.length() साथ करने की कोशिश की जो भी फिर से नीचे की त्रुटि के साथ विफल रहा है:

com.jayway.jsonpath.PathNotFoundException: Property ['length()'] not found in path $['orders']

कृपया मुझे सुझाव है कि कैसे सरणी Goessner के JsonPath अभिव्यक्ति का उपयोग कर की लंबाई प्राप्त करने के लिए।

[संपादित करें] के बाद मैं कैसे विन्यास प्राप्त कर रहा हूँ है:

com.jayway.jsonpath.Configuration conf = com.jayway.jsonpath.Configuration.defaultConfiguration().addOptions(Option.DEFAULT_PATH_LEAF_TO_NULL); 
    DocumentContext documentContext = JsonPath.using(conf).parse(orderJson); 
    Object val = documentContext.read(jsonPathExpression); 

उत्तर

17

यह एक सरणी के length() लौटने के लिए समर्थन लगता है केवल jayway json-पथ पुस्तकालय की added in version 2.1.0 था।

कुछ त्वरित परीक्षणों के आधार पर, $.orders.length() अभिव्यक्ति संस्करण 2.1.0 और संस्करण 2.2.0 दोनों के साथ काम करने लगता है, इसलिए मुझे लगता है कि आपको जो त्रुटि दिखाई दे रही है उसे ठीक करने के लिए आपको केवल अपने निर्भरता संस्करण को अपग्रेड करना होगा।

+1

धन्यवाद दोस्त, मैं संस्करण 2.2.0 में अपग्रेड किया गया और यह नवीनतम संस्करण के साथ पूरी तरह से काम कर रहा है –

संबंधित मुद्दे