iOS 處理後臺返回的json(或NSDictionary)形式字串
阿新 • • 發佈:2019-02-10
呵呵, 要是僅僅處理json也不用我專門寫這個部落格, 只是後臺人員喜歡用外層json內部放置json形式的字串的形式傳輸資料, 這樣將字串轉為json就變得有必要了.
例如後臺返回的字串為:
"{\"address\":\"示例地址\", \"birth\":\"19911220\",\"config_str\":\"{\\\"side\\\":\\\"face\\\"}\",\"face_rect\":{\"angle\":-90,\"center\":{\"x\":885.5,\"y\":266},\"size\":{\"height\":253,\"width\":232} },\"name\":\"名字\",\"nationality\":\"\",\"num\":\"410221198112201220\",\"request_id\":\"20170303153224_b1a90ad4e5c91d63a7cf8b0155a4dc45\",\"sex\":\"\",\"success\":true}\n"
這時就是單純的字串轉json(字典)了, 程式碼示例:
NSString *JSONString = @"{\"address\":\"示例地址\", \"birth\":\"19911220\",\"config_str\":\"{\\\"side\\\":\\ \"face\\\"}\",\"face_rect\":{\"angle\":-90,\"center\":{\"x\":885.5,\"y\":266},\"size\":{\"height\":253,\"width\":232}},\"name\":\"名字\",\"nationality\":\"\",\"num\":\"410221198112201220\",\"request_id\":\"20170303153224_b1a90ad4e5c91d63a7cf8b0155a4dc45\",\"sex\":\"\",\"success\":true}\n";
// 字串進行UTF8編碼, 編碼為流
NSData *JSONData = [ JSONString dataUsingEncoding:NSUTF8StringEncoding];
// 將流轉換為字典
NSDictionary *dataDict = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableLeaves error:nil];
轉換結果: