// // RAConvertor.m // RedAnt Mobile // // Created by Ray on 08/09/2017. // Copyright © 2017 Ray. All rights reserved. // #import "RAConvertor.h" #import "const.h" @implementation RAConvertor +(NSString*)DataTOjsonString:(id)object { NSString *jsonString = nil; NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string error:&error]; if (! jsonData) { DebugLog(@"Got an error: %@", error); } else { jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; } return jsonString; } +(NSDictionary*) data2dict:(NSData*) data { return [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil]; } +(NSArray*)Dict2KVArray:(NSDictionary*) dict trim:(bool)trim { NSMutableArray* ret = [NSMutableArray new]; for(NSString* key in [dict allKeys]) { NSMutableDictionary* kv = [NSMutableDictionary new]; kv[@"key"] = key; if(trim) { if([dict valueForKey:key]==nil) continue; NSString* val = [NSString stringWithFormat:@"%@",[dict valueForKey:key]]; if(val.length==0) continue; } kv[@"value"] = [dict valueForKey:key]; [ret addObject:kv]; } return ret; } +(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim { if(arr.count==0) return nil; NSMutableArray * marr = [arr mutableCopy]; begin: for (NSString* item in marr) { if(item.length==0 ) if( btrim) { [marr removeObject:item]; goto begin; } } NSString * ret = [marr componentsJoinedByString:separator]; return ret; } +(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim brackets:(NSString*)brackets { if(brackets!=nil) separator = [NSString stringWithFormat:@"%@%@%@",brackets,separator,brackets]; NSMutableArray * marr = [arr mutableCopy]; begin: for (NSString* item in marr) { if(item.length==0 ) if( btrim) { [marr removeObject:item]; goto begin; } } NSString * ret = [marr componentsJoinedByString:separator]; if(brackets!=nil) ret = [NSString stringWithFormat:@"%@%@%@",brackets,ret,brackets]; return ret; } +(NSData*) dict2data:(NSDictionary*) dict { if(dict==nil) return nil; // 将NSDictionary转化为NSData NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil]; return data; } +(NSDictionary*) string2dict:(NSString*) str { if(str==nil||(NSNull *)str==[NSNull null]) return nil; NSError *error = nil; NSDictionary *string2dic = [NSJSONSerialization JSONObjectWithData: [str dataUsingEncoding:NSUTF8StringEncoding] options: NSJSONReadingMutableContainers error: &error]; DebugLog(@"%@",string2dic); return string2dic; } +(NSString*) dict2string:(id) dict { if(dict==nil) return nil; // 将NSDictionary转化为NSData NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil]; // 再将NSData转为字符串 NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return jsonStr; } +(NSArray*) string2arr:(NSString*) string separator:(NSString*)separator { if(string.length==0) return [NSArray new]; if(separator.length==0) return @[string]; // if(separator.length==0) NSArray *stringArray = [string componentsSeparatedByString:separator]; return stringArray; } @end