iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转

Posted ming1025

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转相关的知识,希望对你有一定的参考价值。

1. 字典转Json字符串

+ (NSString*)convertToJSONData:(id)infoDict
{
    NSError *error;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:infoDict
                                                       options:NSJSONWritingPrettyPrinted // Pass 0 if you don‘t care about the readability of the generated string
                                                         error:&error];

    NSString *jsonString = @"";

    if (! jsonData) 
    {
        NSLog(@"Got an error: %@", error);
    }else
    {
        jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    }

    jsonString = [jsonString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];  //去除掉首尾的空白字符和换行字符

    [jsonString stringByReplacingOccurrencesOfString:@"\n" withString:@""];

    return jsonString;
}

2. JSON字符串转化为字典

+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString
{
    if (jsonString == nil) {
        return nil;
    }

    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
                                                        options:NSJSONReadingMutableContainers
                                                          error:&err];
    if(err)
    {
        NSLog(@"json解析失败:%@",err);
        return nil;
    }
    return dic;
}

以上是关于iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转的主要内容,如果未能解决你的问题,请参考以下文章

iOS 开发,NSDictionary 和 Model 哪个好

iOS 开发中字典和字符串的转换

iOS 字典的实现原理

iOS - 数组与字典(NSArray & NSDictionary)

iOS开发字典的快速赋值 setValuesForKeysWithDictionary

Objective - C NSDictionary不可变字典和NSMutableDictionary可变字典