NSString、NSArray、NSDictionaryでJSONを回す方法
2713 ワード
iOSの開発について、NSString、NSArray、NSDictionaryデータをどのようにJSONデータに変換し、Base 64符号化を使用してバックグラウンドに転送するかについて、以下にNSString、NSArray、NSDictionaryがJSONに転送する方法を記録します.NSStringのカテゴリに次のように書きます.
トランスポートゲート:Base 64コードが正しいかどうかをテストする/JSONが正しいかどうかをテストする
NSString+YTH.h
NSString+YTH.h
トランスポートゲート: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];
}