2010-02-13 3 views
140

जहां तक ​​मुझे पता है, उद्देश्य-सी, JSON Framework, YAJL, और Touch JSON के लिए तीन JSON पार्सर्स हैं। फिर, इन तीनों की अपनी विशेषताओं होगी।

उदाहरण के लिए:
YAJL को SAX शैली पार्सर के रूप में उपयोग किया जा सकता है।
जेएसओएन फ्रेमवर्क में अपेक्षाकृत लंबा इतिहास है और इसका व्यापक रूप से उपयोग किया जाता है।
एनएसटीटींग के बजाय जेएसओएन पार्स एनएसडेटा को स्पर्श करें।
उद्देश्य-सी (जेएसओएन फ्रेमवर्क, वाईएजेएल, टचजेसन, आदि) के लिए जेएसओएन पार्सर की तुलना

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

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

+1

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

+0

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

+5

Obj-C के लिए स्ट्रीमिंग JSON पार्सर के बारे में क्या? मैं एक पार्सर रखना चाहता हूं जो एक नए ऑब्जेक्ट को पार्स किया गया हो, तो इसके प्रतिनिधि को बताएगा।जब आप किसी सर्वर से एक बड़ा JSON डाउनलोड कर रहे हैं, तो आप प्राप्त किए गए भाग को संसाधित करना प्रारंभ कर सकते हैं। यह मेमोरी पदचिह्न भी कम कर सकता है। –

उत्तर

59

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

+2

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

+2

दूसरा। अपने रिलीज बिल्ड में NS_BLOCK_ASSERTIONS ध्वज सेट करना याद रखें। यह गति को और भी बेहतर बनाता है। – DenTheMan

+1

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

5

वहाँ भी this parser है:

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

+0

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

+0

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

2

this post पर देखें। < 30 वर्ण>

+2

यहां तक ​​कि बेहतर, यहां अद्यतन संस्करण देखें http://psionides.jogger.pl/2010/12/12/cocoa-json-parsing- पुस्तकालय-part-2/ (spoiler: JSONKit जीतता है)। –

+2

हालांकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (http://meta.stackexchange.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। –

0

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

iPhoneWebServicesClient

12

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

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

+1

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

+0

ditto। [NSJSONSerialization] (http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html), मेरे लिए, समझने का समझदार तरीका है - कम से कम आईओएस 5.0 को लक्षित करने के लिए और ऊपर। –

+0

उत्तर में लिंक टूटा हुआ है। कृपया इसे ठीक करे – Ossir

0

आप देख रहे हैं JSON और इसके विपरीत NSObject से एक serializer के लिए, आप OBJC JSONSerializer

3

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

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