RAConvertor.m 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. //
  2. // RAConvertor.m
  3. // RedAnt Mobile
  4. //
  5. // Created by Ray on 08/09/2017.
  6. // Copyright © 2017 Ray. All rights reserved.
  7. //
  8. #import "RAConvertor.h"
  9. #import "const.h"
  10. @implementation RAConvertor
  11. +(NSString*)DataTOjsonString:(id)object
  12. {
  13. NSString *jsonString = nil;
  14. NSError *error;
  15. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object
  16. options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
  17. error:&error];
  18. if (! jsonData) {
  19. DebugLog(@"Got an error: %@", error);
  20. } else {
  21. jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  22. }
  23. return jsonString;
  24. }
  25. +(NSDictionary*) data2dict:(NSData*) data
  26. {
  27. return [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
  28. }
  29. +(NSArray*)Dict2KVArray:(NSDictionary*) dict trim:(bool)trim
  30. {
  31. NSMutableArray* ret = [NSMutableArray new];
  32. for(NSString* key in [dict allKeys])
  33. {
  34. NSMutableDictionary* kv = [NSMutableDictionary new];
  35. kv[@"key"] = key;
  36. if(trim)
  37. {
  38. if([dict valueForKey:key]==nil)
  39. continue;
  40. NSString* val = [NSString stringWithFormat:@"%@",[dict valueForKey:key]];
  41. if(val.length==0)
  42. continue;
  43. }
  44. kv[@"value"] = [dict valueForKey:key];
  45. [ret addObject:kv];
  46. }
  47. return ret;
  48. }
  49. +(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim
  50. {
  51. if(arr.count==0)
  52. return nil;
  53. NSMutableArray * marr = [arr mutableCopy];
  54. begin:
  55. for (NSString* item in marr) {
  56. if(item.length==0 )
  57. if( btrim)
  58. {
  59. [marr removeObject:item];
  60. goto begin;
  61. }
  62. }
  63. NSString * ret = [marr componentsJoinedByString:separator];
  64. return ret;
  65. }
  66. +(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim brackets:(NSString*)brackets
  67. {
  68. if(brackets!=nil)
  69. separator = [NSString stringWithFormat:@"%@%@%@",brackets,separator,brackets];
  70. NSMutableArray * marr = [arr mutableCopy];
  71. begin:
  72. for (NSString* item in marr) {
  73. if(item.length==0 )
  74. if( btrim)
  75. {
  76. [marr removeObject:item];
  77. goto begin;
  78. }
  79. }
  80. NSString * ret = [marr componentsJoinedByString:separator];
  81. if(brackets!=nil)
  82. ret = [NSString stringWithFormat:@"%@%@%@",brackets,ret,brackets];
  83. return ret;
  84. }
  85. +(NSData*) dict2data:(NSDictionary*) dict
  86. {
  87. if(dict==nil)
  88. return nil;
  89. // 将NSDictionary转化为NSData
  90. NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil];
  91. return data;
  92. }
  93. +(NSDictionary*) string2dict:(NSString*) str
  94. {
  95. if(str==nil||(NSNull *)str==[NSNull null])
  96. return nil;
  97. NSError *error = nil;
  98. NSDictionary *string2dic = [NSJSONSerialization JSONObjectWithData: [str dataUsingEncoding:NSUTF8StringEncoding]
  99. options: NSJSONReadingMutableContainers
  100. error: &error];
  101. DebugLog(@"%@",string2dic);
  102. return string2dic;
  103. }
  104. +(NSString*) dict2string:(id) dict
  105. {
  106. if(dict==nil)
  107. return nil;
  108. // 将NSDictionary转化为NSData
  109. NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil];
  110. // 再将NSData转为字符串
  111. NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  112. return jsonStr;
  113. }
  114. +(NSArray*) string2arr:(NSString*) string separator:(NSString*)separator
  115. {
  116. if(string.length==0)
  117. return [NSArray new];
  118. if(separator.length==0)
  119. return @[string];
  120. // if(separator.length==0)
  121. NSArray *stringArray = [string componentsSeparatedByString:separator];
  122. return stringArray;
  123. }
  124. @end