RAConvertor.m 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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. +(NSArray*)Dict2KVArray:(NSDictionary*) dict trim:(bool)trim
  26. {
  27. NSMutableArray* ret = [NSMutableArray new];
  28. for(NSString* key in [dict allKeys])
  29. {
  30. NSMutableDictionary* kv = [NSMutableDictionary new];
  31. kv[@"key"] = key;
  32. if(trim)
  33. {
  34. if([dict valueForKey:key]==nil)
  35. continue;
  36. NSString* val = [NSString stringWithFormat:@"%@",[dict valueForKey:key]];
  37. if(val.length==0)
  38. continue;
  39. }
  40. kv[@"value"] = [dict valueForKey:key];
  41. [ret addObject:kv];
  42. }
  43. return ret;
  44. }
  45. +(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim
  46. {
  47. if(arr.count==0)
  48. return nil;
  49. NSMutableArray * marr = [arr mutableCopy];
  50. begin:
  51. for (NSString* item in marr) {
  52. if(item.length==0 )
  53. if( btrim)
  54. {
  55. [marr removeObject:item];
  56. goto begin;
  57. }
  58. }
  59. NSString * ret = [marr componentsJoinedByString:separator];
  60. return ret;
  61. }
  62. +(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim brackets:(NSString*)brackets
  63. {
  64. if(brackets!=nil)
  65. separator = [NSString stringWithFormat:@"%@%@%@",brackets,separator,brackets];
  66. NSMutableArray * marr = [arr mutableCopy];
  67. begin:
  68. for (NSString* item in marr) {
  69. if(item.length==0 )
  70. if( btrim)
  71. {
  72. [marr removeObject:item];
  73. goto begin;
  74. }
  75. }
  76. NSString * ret = [marr componentsJoinedByString:separator];
  77. if(brackets!=nil)
  78. ret = [NSString stringWithFormat:@"%@%@%@",brackets,ret,brackets];
  79. return ret;
  80. }
  81. +(NSData*) dict2data:(NSDictionary*) dict
  82. {
  83. if(dict==nil)
  84. return nil;
  85. // 将NSDictionary转化为NSData
  86. NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil];
  87. return data;
  88. }
  89. +(NSDictionary*) string2dict:(NSString*) str
  90. {
  91. if(str==nil||(NSNull *)str==[NSNull null])
  92. return nil;
  93. NSError *error = nil;
  94. NSDictionary *string2dic = [NSJSONSerialization JSONObjectWithData: [str dataUsingEncoding:NSUTF8StringEncoding]
  95. options: NSJSONReadingMutableContainers
  96. error: &error];
  97. DebugLog(@"%@",string2dic);
  98. return string2dic;
  99. }
  100. +(NSString*) dict2string:(id) dict
  101. {
  102. if(dict==nil)
  103. return nil;
  104. // 将NSDictionary转化为NSData
  105. NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil];
  106. // 再将NSData转为字符串
  107. NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  108. return jsonStr;
  109. }
  110. +(NSArray*) string2arr:(NSString*) string separator:(NSString*)separator
  111. {
  112. if(string.length==0)
  113. return [NSArray new];
  114. if(separator.length==0)
  115. return @[string];
  116. // if(separator.length==0)
  117. NSArray *stringArray = [string componentsSeparatedByString:separator];
  118. return stringArray;
  119. }
  120. @end