NSDictionary+NTESJson.m 2.3 KB

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