1. 程式人生 > >iOS 處理後臺返回的json(或NSDictionary)形式字串

iOS 處理後臺返回的json(或NSDictionary)形式字串

呵呵, 要是僅僅處理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];

轉換結果: