JSON के लिए क्वेरी भाषा


11

मेरे पास एक सर्वर है जो बहुत बड़ा JSON संदेश लौटा रहा है और मेरा ग्राहक अनुप्रयोग केवल इस प्रतिक्रिया के हिस्से पर निर्भर है। क्लाइंट एप्लिकेशन को यह जांचने की आवश्यकता है कि क्या "xyz" संपत्ति JSON संदेश में मौजूद है और परिणाम के आधार पर एक विशिष्ट usecase चलाते हैं।

इस आवश्यकता के लिए पूरे JSON संदेश को ऑब्जेक्ट में परिवर्तित करना मेरे लिए थोड़ा महंगा है और इसलिए यह प्रश्न है।

क्या हमारे पास XML जैसी मानक JSON क्वेरी भाषा है? यदि हाँ, तो java में इस क्वेरी भाषा का सबसे अच्छा कार्यान्वयन क्या है।

FYI करें: सर्वर साइड पर नई सेवा बदलना या जोड़ना कोई विकल्प नहीं है।


जावास्क्रिप्ट में, यदि प्रतिक्रिया सही हेडर (एप्लिकेशन / जसन) के साथ भेजी जाती है, तो JSON प्रतिक्रिया एक जावास्क्रिप्ट ऑब्जेक्ट होगी। क्या आप यही पूछ रहे हैं? मुझे आपके सवाल पर यकीन नहीं है।
फ्लोरियन मार्गाइन

@Florian मैं सहमत हूं, मुझे अपना प्रश्न अपडेट करने और जावा को विशिष्ट बनाने की अनुमति दें।
फार्म

फिर, मुझे लगता है कि आपने json.org/java की कोशिश की है ? :-)
फ्लोरियन मार्गाइन

मैं एक ही बात सोच रहा हूँ। JSON के लिए मैंने देखा हर जावा पुस्तकालय बुरी तरह से दिखाई देता है; वहाँ JSON.getString(json_string, 'foo.22.bar')संपत्ति की "फू" सूची में 22 तत्व में (के लिए, संपत्ति "बार" की तर्ज पर कुछ भी नहीं है , जिसमें एक स्ट्रिंग है)
इज़काता

या, हर बार पार्सिंग से बचने के JSON baz = new JSON(json_string); baz.getString('foo.22.bar');लिए, उदाहरण के लिए
इज़काता

जवाबों:


6

सिर्फ जावास्क्रिप्ट का उपयोग क्यों न करें? (JSON सब के बाद जावास्क्रिप्ट ऑब्जेक्ट नोटेशन है)। फिर आपको JSON को पार्स या हेरफेर नहीं करना पड़ेगा।

EDIT http://json.org/java पर एक नज़र

इस आवश्यकता के लिए पूरे JSON संदेश को ऑब्जेक्ट में परिवर्तित करना मेरे लिए थोड़ा महंगा है और इसलिए यह प्रश्न है।

यह नहीं है। किसी वस्तु का वर्णन करना सस्ता है (बेंच इसे स्वयं परखें)। बाहरी एपीआई से बात करना अधिक महंगा परिमाण का एक आदेश होगा। आप सीधे स्ट्रिंग को हेरफेर कर सकते हैं जो थोड़ा तेज हो सकता है लेकिन आप बग को जोखिम में डाल देंगे, एक्स्टेंसिबिलिटी को कम कर सकते हैं और पठनीयता को कम कर सकते हैं। एक उच्च लागत।


मैंने अपना प्रश्न अपडेट किया और इसे जावा विशिष्ट बना दिया।
फार्म

जावास्क्रिप्ट का उपयोग करना एक विकल्प नहीं है क्योंकि क्लाइंट एप्लिकेशन हेडुनिट पर चल रहा है जिसमें केवल LWUIT का समर्थन है
फार्म

2

"उपाय, अनुमान मत करो"। हां वस्तु क्रमबद्धता और विचलन मेरे सिद्धांत में महंगे हैं, लेकिन आपके आवेदन के प्रदर्शन लक्ष्य क्या हैं? यदि ऑब्जेक्ट (डी) क्रमांकन आपके प्रदर्शन को अस्वीकार्य स्तरों तक नहीं बढ़ाता है, तो इसके बारे में चिंता न करें :-)। पाठ्यक्रम की कुंजी यह जानना है कि प्रदर्शन की सीमाएं क्या होनी चाहिए (उदाहरण के लिए 2 सेकंड में उपयोगकर्ता का प्रतिक्रिया समय) और अनुरोध / प्रतिक्रिया चक्र के प्रत्येक भाग को मापने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.