2018-06-01字典和json字符串的转换

我们用到需要向服务器端传递json的字符串,这时候我们需要把参数字典转成字符串。直接使用[NSString stringWithFormat:@"%@",dict]转成的字符串带有空格和换行符,所以我们需要处理一下。

-(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字符串了,接下来我们使用这个字符串进行加密或者直接传递服务器端就可以实现我们需要的功能了。


我们将json字符串转字典或数组是,使用一下两个方法可以实现。

+ (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;

}


是不是很简单,哈哈

你可能感兴趣的:(2018-06-01字典和json字符串的转换)