1. 程式人生 > >如何將JSON資料通過Get方法獲取資料

如何將JSON資料通過Get方法獲取資料

介面格式如下:xxxxxxxxx/IMUser/getcontact?getcontact={"phonelist":[{"phone":"15314695439"}],"userid":"9"}   其中{"phonelist":[{"phone":"15314695439"}],"userid":"9"}為JSON格式

我是用ASIHttpRequest來請求資料的,方法如下:

NSMutableDictionary *_muDic = [[NSMutableDictionaryalloc] init];

NSMutableArray *dataArray=[[NSMutableArrayalloc

]init];

    for (int i=0; i<self.contacts.count; i++) {

        THContact *thentity=[self.contacts objectAtIndex:i];

        if (thentity.phone!=nil) {

NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];

            [dic setObject:thentity.phone forKey:@"phone"];

            [dataArray addObject

:dic];     //此資料中存放手機號     

        }        

    }

NSMutableDictionary *dataDic=[[NSMutableDictionaryalloc]init];//此字典存放手機號列表和使用者ID

    [dataDic setObject:dataArray forKey:@"phonelist"];

    [dataDic setObject:[YBXUserProfile sharedInstance].ownerId forKey:@"userid"];

NSError *error;

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dataDic options:NSJSONWritingPrettyPrinted error:&error];//這一句就是把

NSDictionary轉換成JSON格式的方法,JSON格式的資料儲存在NSData型別的變數中。

    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];//轉換成UTF8編碼

[_muDic setObject:jsonString forKey:@"getcontact"];

    [commonManagementsendCommonEventToServer:_muDic interface:@"getcontact"InterfaceType:@"IMUser/getcontact"];//將存放資料的字典通過已封裝好的方法

向伺服器傳送請求

目前看來到這就應該可以成功請求資料了,但實際不是,怎麼都請求不到資料,NSString *jsonString = [[NSStringallocinitWithData:jsonData encoding:NSUTF8StringEncoding];//轉換成UTF8編碼     此處編碼過後,jsonString 裡的資料被換行了,而位址列中不能換行,於是我想了很久,找了很久,終於想到了jsonString 中的換行符替換掉,程式碼如下:

NSString *text = [[sendData valueForKey:sendKey] stringByReplacingOccurrencesOfString:@"\n" withString:@""];//這是在進行MD5加密的時候做的處理,問題到此終於解決了。