【发布时间】:2014-09-30 16:28:59
【问题描述】:
我收到如下逗号分隔的字符串,将其转换为字典数组。我尝试使用[myString componentsSeparatedByString:@","];,但输出完全不同。转换它的正确方法是什么?
NSString *cancellationStr ==> [{"cutoffTime":"0-2","refundInPercentage":"0"},{"cutoffTime":"2-3","refundInPercentage":"50"},{"cutoffTime":"3-24","refundInPercentage":"90"}]
NSArray *array = [cancellationStr componentsSeparatedByString:@","];
//Gives response like below
(
"[{\"cutoffTime\":\"0-2\"",
"\"refundInPercentage\":\"0\"}",
"{\"cutoffTime\":\"2-3\"",
"\"refundInPercentage\":\"50\"}",
"{\"cutoffTime\":\"3-24\"",
"\"refundInPercentage\":\"90\"}]"
)
使用单例 HTTP 类获取和解析的代码
NSString *urlString=[NSString stringWithFormat:@"%@%@sourceCity=%@&destinationCity=%@&doj=%@",BASE_URL,AVAILABLE_BUSES,source,destination,dateStr];
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url= [NSURL URLWithString:urlString];
SuccessBlock successBlock = ^(NSData *responseData){
NSError *error;
jsonDictionary = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&error];
bArray = [jsonDictionary objectForKey:@"apiAvailableBuses"];
};
FailureBlock failureBlock = ^(NSError *error){
NSLog(@"%@",error);
};
HTTPRequest *request = [[HTTPRequest alloc]initWithURL:url successBlock:successBlock failureBlock:failureBlock];
[request startRequest];
上面的成功块接收到我要转换的字符串。
NSString *cancellationStr = [[bArray objectAtIndex:rowIndex]valueForKey:@"cancellationPolicy"];
bObject.cancellationPolicy = [cancellationStr componentsSeparatedByString:@","];
NSLog(@"Cancellation Array : %@",bObject.cancellationPolicy);
【问题讨论】:
-
使用 NSJSONSerialization 解析 JSON。
-
完成了...这是收到的回复顺便说一句
-
使用
NSJSONSerialization显示您处理myString的代码。 -
我猜他做了 DataWithObject 而不是 ObjectWithData。
-
向我们展示您输入 NSJSONSerialization 的 JSON。
标签: ios objective-c nsstring nsarray nsdictionary