我們用到需要向服務(wù)器端傳遞json的字符串,這時(shí)候我們需要把參數(shù)字典轉(zhuǎn)成字符串。直接使用[NSString stringWithFormat:@"%@",dict]轉(zhuǎn)成的字符串帶有空格和換行符,所以我們需要處理一下。
-(NSString*)convertToJsonData:(NSDictionary*)dict
{
? ? NSError*error;
? ? NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];
? ? NSString*jsonString;
? ? if(!jsonData) {
? ? ? ? NSLog(@"%@",error);
? ? }else{
? ? ? ? jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
? ? }
? ? NSMutableString *mutStr = [NSMutableString stringWithString:jsonString];
? ? NSRangerange = {0,jsonString.length};
? ? //去掉字符串中的空格
? ? [mutStrreplaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];
? ? NSRangerange2 = {0,mutStr.length};
? ? //去掉字符串中的換行符
? ? [mutStrreplaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];
? ? returnmutStr;
}
這樣我們就得到需要的json字符串了,接下來(lái)我們使用這個(gè)字符串進(jìn)行加密或者直接傳遞服務(wù)器端就可以實(shí)現(xiàn)我們需要的功能了。
我們將json字符串轉(zhuǎn)字典或數(shù)組是,使用一下兩個(gè)方法可以實(shí)現(xiàn)。
+ (NSDictionary*)dictionaryWithJsonString:(NSString*)jsonString
{
? ? if(jsonString ==nil) {
? ? ? ? returnnil;
? ? }
? ? NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
? ? NSError*err;
? ? NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? options:NSJSONReadingMutableContainers
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error:&err];
? ? if(err)
? ? {
? ? ? ? NSLog(@"json解析失敗:%@",err);
? ? ? ? returnnil;
? ? }
? ? returndic;
}
+ (NSArray*)arrayWithJsonString:(NSString*)jsonString
{
? ? if(jsonString ==nil) {
? ? ? ? returnnil;
? ? }
? ? NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
? ? NSError*err;
? ? NSArray *arr = [NSJSONSerialization JSONObjectWithData:jsonData
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? options:NSJSONReadingMutableContainers
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error:&err];
? ? if(err)
? ? {
? ? ? ? NSLog(@"json解析失?。?@",err);
? ? ? ? returnnil;
? ? }
? ? returnarr;
}
是不是很簡(jiǎn)單,哈哈