NSString 的各种转换

1、NSString 转成dictionary 格式:可以通过JSON 转换

/**
 *  字符串转字典
 *
 *  @param jsonString 字符串
 *
 *  @return NSDictionary
 */
+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString {

    if (jsonString == nil) {
        return nil;
    }
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

    NSError *error;

    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];

    if (error) {
        NSLog(@"json解析失败 %@",error);

        error = nil;

        // 此处遇到 NSJSONSerialization 抛出异常 - “Garbage at End”,
        // 大致原因是因为 含有JSON转换无法识别的字符。这里的string是加密过的,导致解密后的数据加了一些 “操作符”,我们需要把这些操作符给去掉
        // 下面代码将 所有控制符都会被替换成空字符
        jsonString = [jsonString stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
        // 再将 string 装成 data 格式
        jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
        // 将 data 装成字典
        dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];

    }
    return dic;
}

2、dictionary 转成NSString 格式:可以通过JSON 转换

/**
 *  字典转字符串
 *
 *  @param dic 字典
 *
 *  @return NSString
 */
+ (NSString*)dictionaryToJson:(NSDictionary *)dic

{

    NSError *parseError = nil;

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];

    NSString *string = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    string = [string stringByReplacingOccurrencesOfString:@"\n" withString:@""];    // 将 换行符去掉

    return string;

}

http://blog.sina.com.cn/s/blog_a573f7990101ezpa.html

你可能感兴趣的:(iOS)