您的位置:首页 > Web前端 > JavaScript

一个关于字典和数组混合的多层多层次数据转化为JSON数据处理方法

2011-11-01 17:31 621 查看
-(NSString *)getJSONStringFromObj:(id)obj {
NSLog(@"%@",[[obj class] description]);
SBJSON *json = [[[SBJSON alloc] init] autorelease];
if ([obj isKindOfClass:[NSArray class]]) {
NSMutableArray *mt_array = [NSMutableArray array];
NSArray *t_array = (NSArray *)obj;
for (id t_obj in t_array) {
if ([t_obj isKindOfClass:[NSString class]]) {
[mt_array addObject:(NSString *)t_obj];
} else {
NSString *jsonStr = [self getJSONStringFromObj:t_obj];
[mt_array addObject:jsonStr];
}
}
return [json stringWithObject:mt_array error:nil];
} else if ([obj isKindOfClass:[NSDictionary class]]) {
NSDictionary *t_dict = (NSDictionary *)obj;
NSMutableDictionary *mt_dict = [NSMutableDictionary dictionary];
NSArray *keys = [t_dict allKeys];
for (NSString *key in keys) {
id t_obj = [t_dict objectForKey:key];
if ([t_obj isKindOfClass:[NSString class]]) {
[mt_dict setObject:t_obj forKey:key];
} else {
NSString *jsonStr = [self getJSONStringFromObj:t_obj];
[mt_dict setObject:jsonStr forKey:key];
}
}
return [json stringWithObject:mt_dict error:nil];
} else if ([obj isKindOfClass:[NSString class]]) {
return obj;
} else {
return [[obj class] description];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: