2009-08-14 13 views
7

में POST HTTP अनुरोध के लिए एक JSON पेलोड जेनरेट करना क्या किसी के पास JSO पेलोड बनाने के लिए कोई नमूना कोड है जिसे उद्देश्य-सी में HTTP पोस्ट अनुरोध के रूप में भेजा जा सकता है? json पेलोड मैं उत्पन्न करने के लिए देख रहा हूँ का एक उदाहरण लगता है कि: http://code.google.com/p/json-framework/उद्देश्य-सी

किसी भी नमूना कोड बहुत सराहना की जाएगी:

{__metadata:{\"Uri\":\"/NewLoc/\", 
\"Type\":\"Location.NewLoc\"}, \"LocID\":\"100006\", 
\"latitude\": \"40.123456\", \"longitude\": \"-65.876543\", 
\"VisitDate\": \"\\/Date(1249909200000)\\/\", \"type\": \"S\"} 

मैं json-framework से डाउनलोड का उपयोग कर रहा हूँ।

उत्तर

17

आप पहले से ही जेसन-फ्रेमवर्क का उपयोग कर रहे हैं, इसलिए यह आधा काम किया गया है।

यह ढांचा कोई कुंजी-वैल्यू कोडिंग संगत ऑब्जेक्ट ले सकता है और इसे JSON में अनुवाद कर सकता है। यह एक कोर डेटा ऑब्जेक्ट, एक NSDictionary ऑब्जेक्ट, और किसी भी मनमाने ढंग से ऑब्जेक्ट हो सकता है जब तक यह केवीसी का समर्थन करता है।

इसके अलावा, जेसन-फ्रेमवर्क एक श्रेणी जोड़ता है जो आपको JSONRepresentation संदेश का उपयोग करके इन ऑब्जेक्ट्स से JSON स्ट्रिंग प्राप्त करने की अनुमति देता है।

तो, मान लीजिए आप NSDictionary उपयोग करना चाहता था, तो आप लिख सकते हैं:

NSMutableDictionary* jsonObject = [NSMutableDictionary dictionary]; 
NSMutableDictionary* metadata = [NSMutableDictionary dictionary]; 
[metadata setObject:@"NewLoc" forKey:@"Uri"]; 
[metadata setObject:@"Location.NewLoc" forKey:@"Type"]; 
[jsonObject setObject:metadata forKey:@"__metadata"]; 
[jsonObject setObject:@"100006" forKey:@"latitude"]; 
// ... complete the other values 
// 
NSString* jsonString = jsonObject.JSONRepresentation; 
// jsonString now contains your example strings. 
+0

Aviad, कि कमाल का है। कभी-कभी हमें विचार प्राप्त करने के लिए केवल संक्षिप्त कोड नमूने की आवश्यकता होती है। यह 2 घंटे डिबगिंग के लायक है। धन्यवाद! –

+0

@ हमुत्सी: धन्यवाद, मेरी इच्छा है कि मुझे उस के लिए उत्तर चिह्न मिले;) –

+1

ओह मैंने 10 अप्रैल को टिप्पणी डालने के बाद किया :) –