NSDictionary+NIMKit.m 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. //
  2. // NSDictionary+NIMKit.m
  3. // NIMKit
  4. //
  5. // Created by chris on 2017/6/27.
  6. // Copyright © 2017年 NetEase. All rights reserved.
  7. //
  8. #import "NSDictionary+NIMKit.h"
  9. @implementation NSDictionary (NIMKit)
  10. - (NSString *)nimkit_jsonString: (NSString *)key
  11. {
  12. id object = [self objectForKey:key];
  13. if ([object isKindOfClass:[NSString class]])
  14. {
  15. return object;
  16. }
  17. else if([object isKindOfClass:[NSNumber class]])
  18. {
  19. return [object stringValue];
  20. }
  21. return nil;
  22. }
  23. - (NSDictionary *)nimkit_jsonDict: (NSString *)key
  24. {
  25. id object = [self objectForKey:key];
  26. return [object isKindOfClass:[NSDictionary class]] ? object : nil;
  27. }
  28. - (NSArray *)nimkit_jsonArray: (NSString *)key
  29. {
  30. id object = [self objectForKey:key];
  31. return [object isKindOfClass:[NSArray class]] ? object : nil;
  32. }
  33. - (NSArray *)nimkit_jsonStringArray: (NSString *)key
  34. {
  35. NSArray *array = [self nimkit_jsonArray:key];
  36. BOOL invalid = NO;
  37. for (id item in array)
  38. {
  39. if (![item isKindOfClass:[NSString class]])
  40. {
  41. invalid = YES;
  42. }
  43. }
  44. return invalid ? nil : array;
  45. }
  46. - (BOOL)nimkit_jsonBool: (NSString *)key
  47. {
  48. id object = [self objectForKey:key];
  49. if ([object isKindOfClass:[NSString class]] ||
  50. [object isKindOfClass:[NSNumber class]])
  51. {
  52. return [object boolValue];
  53. }
  54. return NO;
  55. }
  56. - (NSInteger)nimkit_jsonInteger: (NSString *)key
  57. {
  58. id object = [self objectForKey:key];
  59. if ([object isKindOfClass:[NSString class]] ||
  60. [object isKindOfClass:[NSNumber class]])
  61. {
  62. return [object integerValue];
  63. }
  64. return 0;
  65. }
  66. - (long long)nimkit_jsonLongLong: (NSString *)key
  67. {
  68. id object = [self objectForKey:key];
  69. if ([object isKindOfClass:[NSString class]] ||
  70. [object isKindOfClass:[NSNumber class]])
  71. {
  72. return [object longLongValue];
  73. }
  74. return 0;
  75. }
  76. - (unsigned long long)nimkit_jsonUnsignedLongLong:(NSString *)key
  77. {
  78. id object = [self objectForKey:key];
  79. if ([object isKindOfClass:[NSString class]] ||
  80. [object isKindOfClass:[NSNumber class]])
  81. {
  82. return [object unsignedLongLongValue];
  83. }
  84. return 0;
  85. }
  86. - (double)nimkit_jsonDouble: (NSString *)key{
  87. id object = [self objectForKey:key];
  88. if ([object isKindOfClass:[NSString class]] ||
  89. [object isKindOfClass:[NSNumber class]])
  90. {
  91. return [object doubleValue];
  92. }
  93. return 0;
  94. }
  95. @end