NSString、NSArray、NSDictionaryでJSONを回す方法

2713 ワード

iOSの開発について、NSString、NSArray、NSDictionaryデータをどのようにJSONデータに変換し、Base 64符号化を使用してバックグラウンドに転送するかについて、以下にNSString、NSArray、NSDictionaryがJSONに転送する方法を記録します.NSStringのカテゴリに次のように書きます.
トランスポートゲート:Base 64コードが正しいかどうかをテストする/JSONが正しいかどうかをテストする
NSString+YTH.h
/**
     (    /  /   )
 
 @param object   /  /   
 @return    
 */
+(NSString *) jsonStringWithObject:(id) object;

/**
      JSON

 @param dictionary     
 @return      
 */
+(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary;


/**
      JSON

 @param array     
 @return      
 */
+(NSString *) jsonStringWithArray:(NSArray *)array;


/**
       JSON

 @param string      
 @return      
 */
+(NSString *) jsonStringWithString:(NSString *) string;


NSString+YTH.h
/**
     (    /  /   )
 
 @param object   /  /   
 @return    
 */
+(NSString *) jsonStringWithObject:(id) object{
    NSString *value = nil;
    if (!object) {
        return value;
    }
    if ([object isKindOfClass:[NSString class]]) {
        value = [NSString jsonStringWithString:object];
    }else if([object isKindOfClass:[NSDictionary class]]){
        value = [NSString jsonStringWithDictionary:object];
    }else if([object isKindOfClass:[NSArray class]]){
        value = [NSString jsonStringWithArray:object];
    }
    return value;
}

/**
       JSON

 @param string      
 @return      
 */
+(NSString *) jsonStringWithString:(NSString *) string{
    return [NSString stringWithFormat:@"%@",
            [[string stringByReplacingOccurrencesOfString:@"
" withString:@"\
"] stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""] ]; } /** JSON @param array @return */ +(NSString *) jsonStringWithArray:(NSArray *)array{ NSMutableString *reString = [NSMutableString string]; [reString appendString:@"["]; NSMutableArray *values = [NSMutableArray array]; for (id valueObj in array) { NSString *value = [NSString jsonStringWithObject:valueObj]; if (value) { [values addObject:[NSString stringWithFormat:@"%@",value]]; } } [reString appendFormat:@"%@",[values componentsJoinedByString:@","]]; [reString appendString:@"]"]; return reString; } /** JSON @param dictionary @return */ +(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary{ NSError *parseError = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&parseError]; return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; }