微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通讯录下载恢复数据到手机上面

遍历从webservice,服务器上面的json文件中数据

---解析json字符串---:


-(void)parseJsonKit:(@H_404_20@Nsstring *)jsonString

{

    @H_404_20@NSArray *array=[jsonStringobjectFromJSONString];

    

   NSLog(@"yunPanCounts=%d",[arraycount]);

   //云端联系人的数量

    self.yunpanCounts.@H_404_20@text =[@H_404_20@NsstringstringWithFormat:@"%u",[arraycount]];


    for (int i =0; i< array.@H_404_20@count; i++) {

        

        @H_404_20@NSDictionary* temp = [arrayobjectAtIndex:i];

        

        @H_404_20@Nsstring *firtname = [tempobjectForKey:@"firstname"];

        @H_404_20@Nsstring *lastname = [tempobjectForKey:@"lastname"];

        @H_404_20@Nsstring *middleName = [tempobjectForKey:@"middleName"];

        @H_404_20@Nsstring *prefix = [tempobjectForKey:@"prefix"];

        @H_404_20@Nsstring *suffix = [tempobjectForKey:@"suffix"];

        @H_404_20@Nsstring *firstnamePhonetic  = [tempobjectForKey:@"firstnamePhonetic"];

        @H_404_20@Nsstring *lastnamePhonetic = [tempobjectForKey:@"lastnamePhonetic"];

       

        @H_404_20@Nsstring *organization = [tempobjectForKey:@"organization"];

        @H_404_20@Nsstring *jobtitle = [tempobjectForKey:@"jobtitle"];

        @H_404_20@Nsstring *department = [tempobjectForKey:@"department"];

        @H_404_20@Nsstring *note = [tempobjectForKey:@"note"];

        @H_404_20@Nsstring *birthday = [tempobjectForKey:@"birthday"];

        @H_404_20@Nsstring *firstKNow = [tempobjectForKey:@"firstKNow"];

        @H_404_20@Nsstring *lastKNow = [tempobjectForKey:@"lastKNow"];

        

        

       //add to contact

        @H_404_20@ABAddressBookRef iphoneAddressBook =ABAddressBookCreate();

        @H_404_20@ABRecordRef newPerson =ABPersonCreate();

        @H_404_20@CFErrorRef error =NULL;

        

        ABRecordSetValue(newPerson,@H_404_20@kABPersonFirstNameProperty,firtname,&error);

        ABRecordSetValue(newPerson,@H_404_20@kABPersonLastNameProperty,lastname,@H_404_20@kABPersonMiddleNameProperty,middleName,@H_404_20@kABPersonPrefixProperty,prefix,@H_404_20@kABPersonSuffixProperty,suffix,@H_404_20@kABPersonFirstNamePhoneticProperty,firstnamePhonetic,@H_404_20@kABPersonLastNamePhoneticProperty,lastnamePhonetic,@H_404_20@kABPersonorganizationProperty,organization,@H_404_20@kABPersonJobTitleProperty,jobtitle,@H_404_20@kABPersonDepartmentProperty,department,@H_404_20@kABPersonNoteProperty,note,@H_404_20@kABPersonBirthdayProperty,birthday,&error);

        

        

        ABRecordSetValue(newPerson,@H_404_20@kABPersonCreationDateProperty,firstKNow,@H_404_20@kABPersonModificationDateProperty,lastKNow,&error);

        

///////////////////特别值的注意的是多值字段的遍历///////////////////////////////

       //用于存放具有多个值的项

       @H_404_20@ABMutableMultiValueRef multi =ABMultiValueCreateMutable(kABMultiStringPropertyType);

        //得到多值字段[电话号码]的集合      

        @H_404_20@NSMutableDictionary *phoneDict = [tempobjectForKey:@"phone"];

        NSLog(@"%@",phoneDict);


        for (id keyin phoneDict) 

        {

            if ([keyisEqualToString:@"home"]) {

                 ABMultiValueAddValueAndLabel(multi,[phoneDict objectForKey:key],@H_404_20@kABPersonHomePageLabel,NULL);

            }

            if ([keyisEqualToString:@"main"]) {

                ABMultiValueAddValueAndLabel(multi,@H_404_20@kABPersonPhoneMainLabel,NULL);

            }

            if ([keyisEqualToString:@"work fax"]) {

                ABMultiValueAddValueAndLabel(multi,@H_404_20@kABPersonPhoneWorkFAXLabel,NULL);

            }

            //other

            

            if ([keyisEqualToString:@"mobile"]) {

                

                ABMultiValueAddValueAndLabel(multi,@H_404_20@kABPersonPhoneMobileLabel,NULL);

            }

            if ([keyisEqualToString:@"home fax"]) {

                ABMultiValueAddValueAndLabel(multi,@H_404_20@kABPersonPhoneHomeFAXLabel,NULL);

            }

            if ([keyisEqualToString:@"other fax"]) {

                ABMultiValueAddValueAndLabel(multi,@H_404_20@kABPersonPhoneOtherFAXLabel,NULL);

            }

            if ([keyisEqualToString:@"pager"]) {

                ABMultiValueAddValueAndLabel(multi,@H_404_20@kABPersonPhonePagerLabel,NULL);

            }

            if ([keyisEqualToString:@"iPhone"]) {

                ABMultiValueAddValueAndLabel(multi,@H_404_20@kABPersonPhoneIPhoneLabel,NULL);

            }

            

            ABRecordSetValue(newPerson,@H_404_20@kABPersonPhoneProperty,multi,&error);

            

        }

        

       //清空该变量用于存放下一个多值的项

        multi = nil;

    ////////////////////////////////////////////////////////////////////////////////       

        ABAddressBookAddRecord(iphoneAddressBook,newPerson,&error);

        ABAddressBookSave(iphoneAddressBook,&error);

        

        if (error!=NULL) {

           NSLog(@"Danger will Robinson! Danger!!!");

        }

      

        

        CFRelease(newPerson);

        CFRelease(iphoneAddressBook);

        

        

    }

    

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐