如何在没有nsmutable字符串的情况下创建以下格式?
{
"appointments" : [
{
"pincode" : null,
"current_status" : "1",
"initial_status" : "1",
"hospital_id" : "12",
"expected_treatment_date" : "18 Nov 2016",
"appt_comments" : null,
"lead_followup_by" : "2",
"speciality_id" : "3",
"lead_followup_datetime" : "2016-11-17 16:23:17",
"email" : null,
"local_id" : 6,
"mobileno" : "536868868868",
"enquiry_created_date" : null,
"id" : "0",
"enquiry_created_by" : null,
"state_id" : null,
"address" : null,
"fullname" : "googhvvjjc",
"lead_created_by" : "166",
"lead_comments" : " H h hh. J",
"appt_datetime" : null,
"city_id" : null,
"other_hospital" : "",
"cash_credit" : "Cash",
"create_plan_mail_sent" : "0",
"interested" : "1",
"lead_created_date" : "2016-11-17 04:23:24",
"appt_created_date" : null,
"appt_created_by" : null
},
{
"pincode" : null,
"current_status" : "1",
"initial_status" : "1",
"hospital_id" : "12",
"expected_treatment_date" : "18 Nov 2016",
"appt_comments" : null,
"lead_followup_by" : "2",
"speciality_id" : "3",
"lead_followup_datetime" : "2016-11-17 16:23:17",
"email" : null,
"local_id" : 6,
"mobileno" : "536868868868",
"enquiry_created_date" : null,
"id" : "0",
"enquiry_created_by" : null,
"state_id" : null,
"address" : null,
"fullname" : "googhvvjjc",
"lead_created_by" : "166",
"lead_comments" : " H h hh. J",
"appt_datetime" : null,
"city_id" : null,
"other_hospital" : "",
"cash_credit" : "Cash",
"create_plan_mail_sent" : "0",
"interested" : "1",
"lead_created_date" : "2016-11-17 04:23:24",
"appt_created_date" : null,
"appt_created_by" : null
}
],
"lead_status" : [
{
}
],
"lead_followups" : [
{
}
]
}
我的代码:
dicAppointment = [[NSMutableDictionary alloc]init];
for (int i = 0; i < arrAppointmentData.count; i++)
{
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"rowid"] forKey:@"local_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"id"] forKey:@"id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"Fullname"] forKey:@"fullname"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"email"] forKey:@"email"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"mobileNo"] forKey:@"mobileno"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"date_time"] forKey:@"appt_datetime"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"address"] forKey:@"address"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"cityid"] forKey:@"city_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"stateid"] forKey:@"state_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"pincode"] forKey:@"pincode"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"speciality_id"] forKey:@"speciality_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_comments"] forKey:@"lead_comments"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"appointment_comment"] forKey:@"appt_comments"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"enquiry_created_date"] forKey:@"enquiry_created_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"enquiry_created_by"] forKey:@"enquiry_created_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"intrested"] forKey:@"interested"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_follow_by"] forKey:@"lead_followup_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_follow_datetime"] forKey:@"lead_followup_datetime"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_created_date"] forKey:@"lead_created_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_created_by"] forKey:@"lead_created_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"appointment_created_date"] forKey:@"appt_created_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"appointment_created_by"] forKey:@"appt_created_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"initial_status"] forKey:@"initial_status"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"current_status"] forKey:@"current_status"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"hospital_id"] forKey:@"hospital_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"cashcredit"] forKey:@"cash_credit"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"expectdate"] forKey:@"expected_treatment_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"other_hospital"] forKey:@"other_hospital"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"create_plan_mail_sent"] forKey:@"create_plan_mail_sent"];
}
所有三个字典都是相同的:
现在合并下面词典中的词典合并
NSDictionary *d = @{
@"appointments": @[ dicAppointment
],@"lead_followups":@[dicleadStatuss],@"lead_status":@[dicleadStatus]
};
以下代码将隐藏在json中:
NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:d options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
NSLog(@"jsonData as string:\n%@", jsonString);
我已成功转换格式,但......我无法通过多个字典。
谢谢
请帮帮我
答案 0 :(得分:2)
在这里,
"appointments" : [ {},{} ]
这是Dictionaries数组,因此您需要将NSDictionary添加到Array中,然后需要将该数组转换为JSON并将其传递给您的服务器。
dicAppointment = [[NSMutableDictionary alloc]init];
arrAppointment = [[NSMutableArray alloc]init];
现在,在您的循环的最后一位,您需要在dicAppointment
arrAppointment
修改强>
这里你需要传递你的数组来代替字典
NSDictionary *d = @{ @"appointments":arrAppointment ,@"lead_followups":arrStatus,@"lead_status":arrLeadStatus };
试试这个
<强> EDIT2 强>
arrAppointment = [[NSMutableArray alloc]init];
for (int i = 0; i < arrAppointmentData.count; i++)
{
dicAppointment = [[NSMutableDictionary alloc]init];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"rowid"] forKey:@"local_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"id"] forKey:@"id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"Fullname"] forKey:@"fullname"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"email"] forKey:@"email"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"mobileNo"] forKey:@"mobileno"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"date_time"] forKey:@"appt_datetime"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"address"] forKey:@"address"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"cityid"] forKey:@"city_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"stateid"] forKey:@"state_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"pincode"] forKey:@"pincode"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"speciality_id"] forKey:@"speciality_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_comments"] forKey:@"lead_comments"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"appointment_comment"] forKey:@"appt_comments"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"enquiry_created_date"] forKey:@"enquiry_created_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"enquiry_created_by"] forKey:@"enquiry_created_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"intrested"] forKey:@"interested"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_follow_by"] forKey:@"lead_followup_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_follow_datetime"] forKey:@"lead_followup_datetime"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_created_date"] forKey:@"lead_created_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"lead_created_by"] forKey:@"lead_created_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"appointment_created_date"] forKey:@"appt_created_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"appointment_created_by"] forKey:@"appt_created_by"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"initial_status"] forKey:@"initial_status"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"current_status"] forKey:@"current_status"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"hospital_id"] forKey:@"hospital_id"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"cashcredit"] forKey:@"cash_credit"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"expectdate"] forKey:@"expected_treatment_date"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"other_hospital"] forKey:@"other_hospital"];
[dicAppointment setValue:[[arrAppointmentData objectAtIndex:i]valueForKey:@"create_plan_mail_sent"] forKey:@"create_plan_mail_sent"];
[arrAppointment addObject: dicAppointment];
}
答案 1 :(得分:0)
我找到了另一种方法:
NSMutableArray *menuItemNameImage = [NSMutableArray array];
for (int i = 0 ; i < arrAppointmentData.count ; i++) {
[menuItemNameImage addObject: @{
@"local_id" : [[arrAppointmentData objectAtIndex:i]valueForKey:@"rowid"]
, @"id" :[[arrAppointmentData objectAtIndex:i]valueForKey:@"id"],
@"fullname":[[arrAppointmentData objectAtIndex:i]valueForKey:@"Fullname"],
@"email":[[arrAppointmentData objectAtIndex:i]valueForKey:@"email"],
@"mobileno":[[arrAppointmentData objectAtIndex:i]valueForKey:@"mobileNo"],
@"appt_datetime":[[arrAppointmentData objectAtIndex:i]valueForKey:@"date_time"],
@"address":[[arrAppointmentData objectAtIndex:i]valueForKey:@"address"]
}];
}
传递你的数组
NSDictionary *d = @{ @"appointments": menuItemNameImage ,@"lead_followups":arrStatus,@"lead_status":arrLeadStatus };