NSLog打印字典转JSON格式

新建一个NSDictionary的分类,加入下面代码即可:

#ifdef DEBUG
//用po打印调试信息时会调用该方法
- (NSString *)debugDescription {
    NSError *error = nil;
    //字典转成json
    NSData *json = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error];
    //如果报错了就按原先的格式输出
    if (error) {
        return [super debugDescription];
    }
    NSString *jsonString = [[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding];
    return jsonString;
}

//打印到控制台时会调用该方法
- (NSString *)descriptionWithLocale:(id)locale {
    return self.debugDescription;
}

//有些时候不走上面的方法,而是走这个方法
- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level {
    return self.debugDescription;
}
#endif

NSArray同理即可。

你可能感兴趣的:(NSLog打印字典转JSON格式)