Maulik Maulik - 19 days ago 4
iOS Question

how to create following json string in ios?

how to create following format without nsmutable string?

{
"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" : [
{

}
]
}


My Code :

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"];

}


All three dictionary are same :

now merge the dictionry merge on following dictionary

NSDictionary *d = @{
@"appointments": @[ dicAppointment
],@"lead_followups":@[dicleadStatuss],@"lead_status":@[dicleadStatus]

};


Following code are to covert in json :

NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:d options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
NSLog(@"jsonData as string:\n%@", jsonString);


I have successfully converted format but...I can't pass multiple dictionary.

Thanks

Please help me

Answer

Here,

"appointments" : [ {},{} ]

this is array of Dictionaries, so you need to add your NSDictionary to an Array and then need to convert that array into JSON and pass it to your server.

 dicAppointment = [[NSMutableDictionary alloc]init];
 arrAppointment = [[NSMutableArray alloc]init];

now at the last of your loop you need to add dicAppointment in arrAppointment

Edit

here you need to pass your array in place of Dictionary

 NSDictionary *d = @{ @"appointments":arrAppointment ,@"lead_followups":arrStatus,@"lead_status":arrLeadStatus };

Try this

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];
}
Comments