उद्देश्य-सी के लिए JSON पार्सर की तुलना (JSON फ्रेमवर्क, YAJL, TouchJSON, आदि)


142

जहाँ तक मुझे पता है, ऑब्जेक्टिव-सी, JSON फ्रेमवर्क , YAJL , और टच JSON के लिए तीन JSON पार्सर हैं । फिर, इन तीनों की अपनी विशेषताएं होंगी।

उदाहरण के लिए:
YAJL का उपयोग SAX स्टाइल पार्सर के रूप में किया जा सकता है।
JSON फ्रेमवर्क का अपेक्षाकृत लंबा इतिहास है और इसका व्यापक रूप से उपयोग किया जाता है।
NSString के बजाय JSON पार्स को टच करें।

इसके अलावा, जहां तक ​​मैंने परीक्षण किया, प्रदर्शन तुलना का परिणाम इस प्रकार है:
[तेज] YAJL> JSON फ्रेमवर्क> टच JSON [धीमा]।

यदि आप इन JSON पार्सर्स के पेशेवरों और विपक्षों को जानते हैं, तो क्या आप मुझे बता सकते हैं?
अंत में, यदि आप किसी अन्य JSON पार्सर को जानते हैं, तो कृपया मुझे बताएं।


1
मेरा वोट! यह एक बड़ा सवाल है। क्या कुछ विशेषज्ञों को यह पसंद आएगा। मैं JSON फ्रेमवर्क का उपयोग सभी के साथ कर रहा हूं, लेकिन अन्य पार्सर्स के पेशेवरों और विपक्षों को जानने के लिए उत्सुक हूं।
चिंतन पटेल

धन्यवाद चिंतन। मैं JSON फ्रेमवर्क का भी उपयोग कर रहा हूं और मुझे कोई शिकायत नहीं है। लेकिन, मुझे उम्मीद है कि कोई हमें अच्छा जवाब दे सकता है।
16

5
Obj-C के लिए JSON पार्सर स्ट्रीमिंग के बारे में क्या? मैं एक ऐसा पार्सर रखना चाहूंगा जो यह बताएगा कि जब एक नई वस्तु को पार्स किया गया है, तो यह प्रतिनिधि है, जैसे जब आप एक सर्वर से एक बड़े JSON को डाउनलोड कर रहे हैं, तो आप उस भाग को संसाधित करना शुरू कर सकते हैं जो प्राप्त हुआ है। यह मेमोरी फ़ुटप्रिंट को कम भी कर सकता है।
Martijn Thé

YAJL वही होगा जो आप चाहते हैं। rel.me/2009/06/15/yajl-json-parser-objective-c-bindings
17

1
एक व्यापक समीक्षा
ओहो

जवाबों:


59

यदि आप गति की तलाश कर रहे हैं, तो JSONKit पर एक नज़र डालें । यह (आमतौर पर) पहले से ही उल्लेख किए गए जेएसएन पुस्तकालयों की तुलना में बहुत तेज है, अक्सर परिमाण का एक क्रम तेजी से होता है। और यह "हाल ही में तात्कालिक वस्तु कैश" होने के कारण, यह (फिर से, आमतौर पर) कम मेमोरी का भी उपयोग करेगा।


2
मैं इसकी पुष्टि कर सकता हूं :) मेरे परीक्षणों में, JSONKit YAJL की तुलना में लगभग दोगुना और JSON फ्रेमवर्क की तुलना में 50% तेज था, लेकिन जाहिर है कि मैंने परीक्षण के लिए जिस डेटा का उपयोग किया था, वह JSONKit के लिए सबसे खराब स्थिति था।
कुबा सुदर

2
दूसरा वह। अपने रिलीज़ बिल्ड में NS_BLOCK_ASSERTIONS ध्वज सेट करना याद रखें। यह आगे भी गति में सुधार करता है।
डेनमैन मैन 20'11

1
AFAICT JSONKit स्ट्रीम-आधारित पार्सिंग का समर्थन नहीं करता है, इसलिए यदि आप एक ऐसा मुद्दा चाहते हैं, तो आप json- फ्रेमवर्क या YAJL के साथ जा सकते हैं।
फ्रैंक श्मिट

प्रदर्शन के लिए JSONKit। रेफरी: cocoanetics.com द्वारा एक व्यापक समीक्षा
ओहो

2
फिलहाल, ऐसा लगता है कि JSONKit को लेखक द्वारा छोड़ दिया गया है। XCode के नवीनतम संस्करण के साथ कुछ समस्याएं हैं, इसे ठीक करने के लिए कई पुल अनुरोध हैं, और उनमें से कोई भी स्वीकार नहीं किया गया है।
ल्यूक द ऑबस्क्योर

12

ध्यान में रखते हुए एक तुलना कि मैंने किया था , सबसे तेजी से पुस्तकालय NSJSONSerialization (अब सार्वजनिक एपीआई) और NextiveJSON द्वारा पीछा किया, JSONKit है। SBJSON और TouchJSON पिछले 3 पुस्तकालयों की तुलना में थोड़ा धीमा है।

तुलना आईओएस 5.0.1 के साथ एक iPhone 4S का उपयोग करके की गई है।


1
NSJSONSerialization सार्वजनिक API का हिस्सा है, यह उल्लेख करने के लिए वोट करें कि मैं इसके साथ रहूँगा, क्योंकि रखरखाव में कोई परेशानी नहीं होगी।
जोहान्स

डिट्टो। मेरे लिए NSJSONSerialization , समझदार तरीका है - कम से कम iOS 5.0 और इससे ऊपर के लक्ष्यीकरण के लिए।
क्विंटन विल्सन

जवाब में लिंक टूटा हुआ है। कृपया इसे ठीक करें
Ossir

5

वहाँ भी इस पार्सर है :

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


यह सबसे हल्का और सरल JSON पार्सर है जिसे मैंने अब तक उपयोग किया है, अत्यधिक अनुशंसित है।
केल्विन

वाह, मेरा दिन बना दिया। इस तरह के एक सरल और सुरुचिपूर्ण पार्सर!
thandasoru

3

मुझे लगता है कि JSONKit YAJL से तेज है और YAJL टच JSON से तेज है और IOS5 वर्ग NSJSONSerialization वर्ग बहुत तेज है। NSJSONSerialization को किसी भी तृतीय पक्ष API का उपयोग करने की कोई आवश्यकता नहीं है।


2

देखो इस पोस्ट । <30 वर्ण>


2
और भी बेहतर, यहाँ अद्यतन संस्करण देखें psionides.jogger.pl/2010/12/12/… (स्पॉइलर: JSONKit जीतता है)।
कुबा सुदर

2
हालांकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक हिस्सों को यहां शामिल करना बेहतर होगा , और संदर्भ के लिए लिंक प्रदान करना होगा।
छिपकली


0

परसो पर अकोसमा के बेंचमार्क पर नज़र क्यों नहीं रखी जाती है जहाँ वह विभिन्न प्रकार के परसरों की तुलना करता है। यदि एक पार्सर गायब है, तो आप उसे परीक्षणों में जोड़ सकते हैं, क्योंकि उसका कोड ओपन सोर्स है।

iPhoneWebServicesClient

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