我使用POST方法将一些参数发送到我的服务器,然后我得到了我的响应并将其存储在字符串“serverResponse”中。这是我存储在字符串中的服务器响应
{
"carIdentifier":[
{"carId":"91"},
{"carId":"93"},
{"carId":"114"},
{"carId":"117"}
]
}
我有单独的json解析代码,但我不知道如何将此作为我的json解析代码的输入。 以下是我的json解析代码
-(void)getcarList:(NSString *)serverResponse
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
NSObject *recommendedcarJSON = nil;
NSData *recommendedcarsData = [NSData dataWithContentsOfURL:[NSURL URLWithString:serverResponse]];
NSLog(@"%@",recommendedcarsData);
if(recommendedcarsData)
recommendedcarJSON = [NSJSONSerialization JSONObjectWithData:recommendedBooksData options:NSJSONReadingMutableContainers error:nil];
if(!recommendedcarsData){
NSLog(@"Error with JSON Serialization");
} else{
[self saveRecommendedcarData:(NSDictionary *)recommendedcarJSON];
}
} );
}
在saveRecommendedcarData方法中,我正在创建一个plist并保存这个已解析的数据。如何将我的服务器响应字符串作为json解析的输入?
答案 0 :(得分:2)
NSError *jsonError = nil;
id allValues = [NSJSONSerialization JSONObjectWithData:[serverResponse dataUsingEncoding:NSUTF8StringEncoding]
options:0
error:&jsonError];
if(jsonError!=nil)
NSLog(@"Json_Err: %@",jsonError);
NSArray *carIdentifier = [(NSDictionary*)allValues objectForKey:@"carIdentifier"];
NSLog(@"%@",carIdentifier);
for(NSDictionary *dict in carIdentifier)
NSLog(@"carId: %@",[dict valueForKey:@"carId"]);
试试这个。
<强>更新强>
-(void)getcarList:(NSString *)serverResponse
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
NSError *jsonError = nil;
id allValues = [NSJSONSerialization JSONObjectWithData:[serverResponse dataUsingEncoding:NSUTF8StringEncoding]
options:0
error:&jsonError];
if(jsonError!=nil)
NSLog(@"Json_Err: %@",jsonError);
NSArray *carIdentifier = [(NSDictionary*)allValues objectForKey:@"carIdentifier"];
NSLog(@"%@",carIdentifier);
for(NSDictionary *dict in carIdentifier)
NSLog(@"carId: %@",[dict valueForKey:@"carId"]);
} );
}
答案 1 :(得分:0)
如果您想从您的日期获得价值,请使用以下代码:
for(i=0 ; i < myDic.count; i++)
{
NSLog(@"%@",[[myDic objectForKey:@"carIdentifier"] objectAtIndex:i] objectForKey:@"carId"])
}