【发布时间】:2016-03-14 06:39:39
【问题描述】:
在我的项目中,我使用 JSON 解析来显示数据,为此我创建了 2 个 NSDictionary 字典 1 返回成功响应,但是当我在第二个字典中调用它时,它返回 Null 值。 我正在分享我的代码,请帮助我更正它
-(void)hdata
{
NSString *post = [NSString stringWithFormat:@"data[Users][ref_id]=%@&api_key=bf45c093e542f057c123ae7d6",refidstr];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://192.168.0.20/hspCh/api/user_diagnose_list"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse *response;
NSError *err;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
[request setHTTPBody:postData];
NSString *str=[[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"str : %@",str);
NSDictionary *dict6 = [self cleanJsonToObject:responseData];
NSLog(@"str : %@",dict6); <=======it gives correct responce
diagnosisdict = [dict6 objectForKey:@"data[Users][ref_id]"];
[diagnosisdict setValue:refidstr forKey:@"data[Users][ref_id]"];
NSLog(@" for ref id =%@ , data is= %@",refidstr, diagnosisdict); <======Gives null responce
}
以上在控制台的输出如下
2015-12-09 10:34:16.935 HcH[2841:32315] str : {"response":200,"diagnoses":[{"DiagnosesHospitals":{"hospital_id":"3341","id":"163075","discharges":"100.00","charge_amt":"1200.00","total_amt":"1500.00","medicare_amt":"1200.00"},"Diagnoses":{"diagnosis_name":"TRANSIENT ISCHEMIA"}}]}
2015-12-09 10:34:16.935 HcH[2841:32315] str : {
diagnoses = (
{
Diagnoses = {
"diagnosis_name" = "TRANSIENT ISCHEMIA";
};
DiagnosesHospitals = {
"charge_amt" = "1200.00";
discharges = "100.00";
"hospital_id" = 3341;
id = 163075;
"medicare_amt" = "1200.00";
"total_amt" = "1500.00";
};
}
);
response = 200;
}
2015-12-09 10:34:16.936 HcH[2841:32315] for ref id =3341 , data is= (null)
【问题讨论】:
-
您是否初始化了您的诊断字典?为什么你为这个 dic 设置键是“data[Users][ref_id]”。这是一个字符串,而不是值。
-
看起来 diagnosticdict 没有初始化。它甚至不是打印对象和内存位置。根据 JSON,没有 data[Users][ref_id] 键。请用户link分析JSON对象。
-
@CongTran data[Users][ref_id] 是一个请求参数,我借助它来获取 API 响应
标签: ios json dictionary nsdictionary