如何将字符串转换为字典。我们正在使用NSJSON
但获取nil
值
NSString *decryptstr = [CTAES decrypt:text];
decryptstr包含以下数据
{
"status":"200","description":"OK","count":"4","reg_flag":1,"cars":
[],"appointments_count":"0","addbymecars":[{"gallery":
[],"imagescount":0,"id":"1924453","mypage_list_flag":0,"appointment_date":"",
"listing_status":"Active","sellername":"test ","sellernumber":"+918888888888","email":"ufhwifuw@gmail.com","make":"Hyundai","model":"i20","model_type":"Asta 1.4 CRDI","listing_type":"","listing_sorting_order":"","band_color":"","price":"65,59,595\/-","state":"Telangana","city":"Hyderabad","area":"","mfgyear":"2013","color":"Green","owner":"2","user_type":"person","dealer_id":"1503181","isfeatured":"0","fueltype":"Diesel","pincode":"0","mileage":"89,89,898","app_latitude":"","app_longitude":"","certification":"n","certification_text":"","images":{"ldpi":"http:\/\/imagecdn.cartrade.com\/notavailable80x60.jpg","mdpi":
"http:\/\/imagecdn.cartrade.com\/notavailable100x75.jpg","hdpi":"http:\/\/imagecdn.cartrade.com\/notavailable150x113.jpg","xhdpi":"http:\/\/imagecdn.cartrade.com\/notavailable200x150.jpg","xxhdpi":"http:\/\/imagecdn.cartrade.com\/notavailable300x225.jpg"},"usedcarshortlist":"0","postingdate":"04-Jan-2016","mobile_link":"http:\/\/testm.cartrade.com\/L1924453","transmission":
"Manual"},{"gallery":[],"imagescount":0,"id":"1924742","mypage_list_flag":0,"appointment_date":"","listing_status":"Active","sellername":"yuyu ","sellernumber":"+919898889989","email":"jhhgj@gmail.com","make":"Maruti Suzuki","model":"800","model_type":"AC","listing_type":"","listing_sorting_order":"","band_color":"","price":"15,64,654\/-","state":"Delhi","city":"New Delhi","area":"","mfgyear":"2014","color":"","owner":"1","user_type":"person","dealer_id":"1484907","isfeatured":"0","fueltype":"Petrol","pincode":"110001","mileage":"1,233","app_latitude":"28.6182","app_longitude":"77.2233",
"certification":"n","certification_text":"","images":{"ldpi":"http:\/\/imagecdn.cartrade.com\/notavailable80x60.jpg","mdpi":"http:\/\/imagecdn.cartrade.com\/notavailable100x75.jpg","hdpi":"http:\/\/imagecdn.cartrade.com\/notavailable150x113.jpg","xhdpi":"http:\/\/imagecdn.cartrade.com\/notavailable200x150.jpg","xxhdpi":"http:\/\/imagecdn.cartrade.com\/notavailable300x225.jpg"},"usedcarshortlist":"0","postingdate":"05-Feb-2016","mobile_link":"http:\/\/testm.cartrade.com\/L1924742","transmission":"Manual"},{"gallery":[],"imagescount":0,"id":"1924641","mypage_list_flag":0,"appointment_date":"","listing_status":"Active","sellername":"vcnvmcx ","sellernumber":"+919812345687","email":"chk@gmail.com","make":"Maruti Suzuki","model":"Alto 800","model_type":"LX","listing_type":"","listing_sorting_order":"",
"band_color":"","price":"2,50,000\/-","state":"Maharashtra","city":"Mumbai","area":"New Hyderabad","mfgyear":"2015","color":"","owner":"1","user_type":"person","dealer_id":"1503221","isfeatured":"0","fueltype":"Petrol","pincode":"500001","mileage":"50,000","app_latitude":"17.3897","app_longitude":"78.478","certification":"n","certification_text":"","images":{"ldpi":"http:\/\/imagecdn.cartrade.com\/notavailable80x60.jpg","mdpi":"http:\/\/imagecdn.cartrade.com\/notavailable100x75.jpg","hdpi":"http:\/\/imagecdn.cartrade.com\/notavailable150x113.jpg","xhdpi":"http:\/\/imagecdn.cartrade.com\/notavailable200x150.jpg","xxhdpi":"http:\/\/imagecdn.cartrade.com\/notavailable300x225.jpg"},
"usedcarshortlist":"1","postingdate":"03-Feb-2016","mobile_link":"http:\/\/testm.cartrade.com\/L1924641","transmission":"Manual"
}
]}
使用NSJSON
NSError *error;
NSData *jsonData = [decryptstr dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *returndict = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&error];
返回获得零价值。
答案 0 :(得分:1)
在转换字符串
之前添加此行NSString *decryptstr = [CTAES decrypt:text];
decryptstr = [NSString stringWithFormat:@"%s",[decryptstr UTF8String]];
答案 1 :(得分:0)
我刚创建了一个JSON文件并复制了您的JSON数据。
NSString *filePath = [[NSBundle mainBundle]pathForResource:@"data" ofType:@"json"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSError *err;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&err];
答案 2 :(得分:0)
你的字符串不包含任何转义字符,Objective-C无法直接读取。因此,请使用以下代码段将转义字符添加到字符串中。
// *** Get your string data ***
NSString *decryptstr = [CTAES decrypt:text];
// *** Add Escape characters to your string ***
NSString *escaped = [decryptstr stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
NSError *error;
// *** Convert escaped string to Data ***
NSData *jsonData = [escaped dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *returndict = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&error];
NSLog(@"%@",returndict);