2010-02-10 10 views
5

के भीतर एक सही ढंग से गठन JSON स्ट्रिंग सुनिश्चित करने के लिए मैं एक plist जो मैं (संयोग से फेसबुक कनेक्ट भीतर उपयोग के लिए) JSON स्ट्रिंग बनाने के लिए उपयोग कर रहा हूँ से स्ट्रिंग डेटा पढ़ रहा हूँ।पार्सिंग NSStrings XCode

NSString *eventLink = [eventDictionary objectForKey:EVENT_FIND_OUT_MORE_KEY]; 
NSString *eventLinkEscaped = [eventLink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSString *eventName = [eventDictionary objectForKey:EVENT_NAME_KEY]; 
NSString *eventDescription = [eventDictionary objectForKey:@"Description"]; 
NSString *eventImageAddress = [eventDictionary valueForKey:@"Image URL"]; 
if ([eventImageAddress length] == 0) 
{ 
    eventImageAddress = NO_EVENT_IMAGE_URL; 
} 
// Publish a story to the feed using the feed dialog 
FBStreamDialog *facebookStreamDialog = [[[FBStreamDialog alloc] init] autorelease]; 
    facebookStreamDialog.delegate = self; 
    facebookStreamDialog.userMessagePrompt = @"Publish to Facebook"; 
    facebookStreamDialog.attachment =[NSString stringWithFormat: @"{\"name\":\"%@\",\"href\":\"%@\",\"description\":\"%@\",\"media\":[{\"type\":\"image\",\"src\":\"%@\",\"href\":\"%@\"}]}", eventName, eventLinkEscaped, eventDescription, eventImageAddress, eventLinkEscaped]; 
[facebookStreamDialog show]; 

यह सब अच्छी तरह से काम करता है, लेकिन निश्चित घटना का विवरण (लगभग में से 4। 150) पाठ है कि संवाद में प्रकट होता है खाली है। मैं स्पष्ट उम्मीदवारों पाया है, यानी, विवरण, इस तरह के stringByAddingPercentEscapesUsingEncoding के रूप में एक आसान विधि कॉल, उदाहरण या कॉपीराइट प्रतीक के लिए "वर्ण है मेरा प्रश्न है वहाँ है: यह सुनिश्चित करेंगे कि है कि किसी भी कुशल पात्रों भाग निकले या अनदेखी कर रहे हैं NSUTF8StringEncoding।?

अग्रिम धन्यवाद,

डेव

+0

वास्तव में आगे की जांच के लिए स्रोत पर एक नज़र डालें, कॉपीराइट प्रतीक ठीक है यह घटनाओं में से 2 के लिए पाठ में वास्तविक एलएफ/सीआर था और "दूसरे के लिए चरित्र 2. –

उत्तर

2

मुझे नहीं लगता कि वहाँ एक आसान तरीका समस्या तार से बचने के लिए है। आप अपने कोड में कहीं और JSON समर्थन की जरूरत है, मौजूदा से एक का उपयोग करने पर विचार JSON पार्सिंग/जनरेटर फ्रेमवर्क जैसे yajl-objc या SBJSON। इनमें से कोई भी आपको अपनी प्रतिक्रिया बनाने देगा फाउंडेशन ऑब्जेक्ट्स (एनएसएआरएआरई/एनएस डिक्शनरी) के रूप में और फिर उचित JSON उत्पन्न करने के लिए एक विधि को कॉल करें। आपका कोड क्लीनर होगा और आपको लाभ होगा कि इन दोनों ढांचे का अच्छी तरह से परीक्षण किया गया है।

सिर्फ JSON का यह एक सा उत्पन्न करने के लिए की जरूरत है, अपने सबसे अच्छे शर्त शायद मैन्युअल इनपुट तार पर चलने के लिए, उचित रूप से साथ संभावित समस्या पात्रों की जगह संस्करणों से बच गया है। जैसा कि आप सोच सकते हैं उतना बुरा नहीं है। SBJsonWriter

+0

धन्यवाद ब्रायन। चीयर्स डेव । –