2016-11-17 53 views
2

如何創建沒有nsmutable字符串的以下格式?如何在ios中創建以下json字符串?

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

    } 

所有這三種字典是一樣的:

現在合併dictionry在以下詞典

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

在JSON []數組是的跡象。 – vaibhav

+0

不要使用'valueForKey:'/'的setValue:forKey:'除非你理解和需要的KVC功能。而50次獲得'arrAppointmentData objectAtIndex:i'is非常非常非常低效的。 – vadian

回答

2

這裏,

"appointments" : [ {},{} ] 

這是字典的數組,所以你需要你的NSDictionary添加到一個數組,然後需要的是數組轉換成JSON轉換並傳遞給你的服務器。

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

現在在最後你的循環,你需要在arrAppointment

編輯

在這裏,你需要通過你的陣列到位詞典

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

添加dicAppointment試試這個

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]; 
} 
+0

可以請你轉換字典數組在我的陣列顯示 –

+0

僅去年字典數據 –

+0

我添加了一些字典在我的陣...但在我的字典裏這麼多的價值我只拿到了數組 –

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