का प्रयास करते हैं JSON डेटा के साथ काम कर रहा बहुत सावधान हो जाते हैं। मान लें कि मेरे पास एक JSON एक NSDictionary में deserialized है। इसके साथ, मुझे शब्दकोश के बाहर "यूआरएल" कुंजी से जुड़े एक स्ट्रिंग को खींचने और इसे एक NSURL चालू करने की आवश्यकता है। इसके अलावा, मैं JSON या स्ट्रिंग मान में 100% आत्मविश्वास नहीं हूं।
मैं कुछ इस तरह करना होगा:
NSURL *URL = nil;
id URLObject = [JSON valueForKey:@"URL"];
if ([URLObject isKindOfClass:[NSString class]] && [URLObject length] > 0) {
URLObject = [URLObject stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
URLObject = [URLObject stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
URL = [NSURL URLWithString:URLObject];
}
इस के बाद, यूआरएल या तो एक शून्य या एक मान्य URL होगा। -इसकिंडऑफ क्लास: एनएस डिक्शनरी, एनएसएआरआरई, एनएसएनंबर, या एनएसएनयूएल के मूल्य को कम करता है। -लम्बाई> 0 खाली स्ट्रिंग को फ़िल्टर करता है (जो, जैसा कि आप जानते हैं, एक NSURL गड़बड़ कर सकते हैं)। डीकोडिंग का अतिरिक्त परावर्तक फिर यूआरएल को फिर से एन्कोड करने से बच निकलता है आंशिक रूप से एन्कोड किए गए यूआरएल को संभालता है।
स्रोत
2012-05-17 14:26:40
यह पहले से ही पार्स है? क्या यूआरएल एनएसआरएल या एनएसएसटींग है? –
यूआरएल एक यूआरएल है .. – Jones
हां, लेकिन यह किस प्रकार की वस्तु है? स्वीकार्य उत्तर से ऐसा लगता है कि यह एक एनएसएसटींग –