NSDictionary+Extension.m 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. //
  2. // NSDictionary+Extension.m
  3. // PowerrichOA
  4. //
  5. // Created by admin on 17/10/10.
  6. // Copyright © 2017年 voquan. All rights reserved.
  7. //
  8. #import "NSDictionary+Extension.h"
  9. @implementation NSDictionary (Extension)
  10. - (NSInteger)integerValueForKey:(id)key {
  11. id value = [self notNullValueForKey:key];
  12. return value == nil ? 0 : [value integerValue];
  13. }
  14. - (int)intValueForKey:(id)key {
  15. id value = [self notNullValueForKey:key];
  16. return value == nil ? 0 : [value intValue];
  17. }
  18. /**
  19. 从字典里取int(内带判空)
  20. @param key 字典Key值
  21. @return long
  22. */
  23. - (long)longValueForKey:(id)key {
  24. id value = [self notNullValueForKey:key];
  25. return value == nil ? 0 : [value longLongValue];
  26. }
  27. - (long long)longlongValueForKey:(id)key {
  28. id value = [self notNullValueForKey:key];
  29. return value == nil ? 0 : [value longLongValue];
  30. }
  31. - (BOOL)boolValueForKey:(id)key {
  32. id value = [self notNullValueForKey:key];
  33. return value == nil ? NO : [value boolValue];
  34. }
  35. - (float)floatValueForKey:(id)key {
  36. id value = [self notNullValueForKey:key];
  37. return value == nil ? NO : [value floatValue];
  38. }
  39. /**
  40. 从字典里取double(内带判空)
  41. @param key 字典Key值
  42. @return double
  43. */
  44. - (double)doubleValueForKey:(id)key {
  45. id value = [self notNullValueForKey:key];
  46. return value == nil ? NO : [value doubleValue];
  47. }
  48. - (NSString *)stringValueForKey:(id)key {
  49. id value = [self notNullValueForKey:key];
  50. if ([value isKindOfClass:[NSNumber class]]) {
  51. value = [value stringValue];
  52. }
  53. return value;
  54. }
  55. - (NSArray *)arrayValueForKey:(id)key {
  56. id value = [self notNullValueForKey:key];
  57. if(![value isKindOfClass:[NSArray class]]) {
  58. return nil;
  59. }
  60. return value;
  61. }
  62. - (NSMutableArray*)mutableArrayValueForKey:(NSString *)key {
  63. id value = [self notNullValueForKey:key];
  64. if(![value isKindOfClass:[NSMutableArray class]]) {
  65. return nil;
  66. }
  67. return value;
  68. }
  69. - (NSDictionary *)dictionaryValueForKey:(id)key {
  70. id value = [self notNullValueForKey:key];
  71. if(![value isKindOfClass:[NSDictionary class]]) {
  72. return nil;
  73. }
  74. return value;
  75. }
  76. - (BOOL)isNullValue:(id)value {
  77. return [value isEqual:[NSNull null]];
  78. }
  79. - (id)notNullValueForKey:(id)key {
  80. id value = [self objectForKey:key];
  81. if([self isNullValue:value]) {
  82. return nil;
  83. }
  84. #pragma mark 判断是否nil
  85. if (value == nil) {
  86. // NSLog(@"%@不存在",key);
  87. value = @"";
  88. }
  89. else if ([value isKindOfClass:[NSNumber class]]) {
  90. value = [NSString stringWithFormat:@"%@", value];
  91. }
  92. return value;
  93. }
  94. -(NSString *)convertToJsonData
  95. {
  96. NSError *error;
  97. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error];
  98. NSString *jsonString;
  99. if (!jsonData) {
  100. NSLog(@"%@",error);
  101. }else{
  102. jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
  103. }
  104. NSMutableString *mutStr = [NSMutableString stringWithString:jsonString];
  105. NSRange range = {0,jsonString.length};
  106. //去掉字符串中的空格
  107. [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];
  108. NSRange range2 = {0,mutStr.length};
  109. //去掉字符串中的换行符
  110. [mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];
  111. return mutStr;
  112. }
  113. @end