NSObject+APBJSON.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // NSObject+APBJSON.h
  3. // BioAuthEngine
  4. //
  5. // Created by yukun.tyk on 9/13/16.
  6. // Copyright © 2016 DTF. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. @interface NSObject (APBJSON)
  10. /**
  11. * JSON encoder
  12. *
  13. * NSarray只支持一级列表,原生类型只支持NSInteger, CGFloat, BOOL
  14. *
  15. * 如果编码失败,会抛异常
  16. *
  17. * @return JSON string
  18. */
  19. - (NSString *)APBToJSON;
  20. - (NSDictionary *)APBToDict;
  21. - (NSDictionary *)APBToDict:(BOOL)valueCanBeNil;
  22. /**
  23. * JSON decoder
  24. *
  25. * @param json JSON string
  26. *
  27. * NSarray只支持一级列表,原生类型只支持NSInteger, CGFloat, BOOL
  28. *
  29. * 如果解析失败,会抛异常
  30. *
  31. * @return JSON object
  32. */
  33. + (instancetype)APBLoadFromJSON:(NSString *)json;
  34. - (void)APBOverrideFromJSON:(NSString *)json;
  35. - (void)APBOverrideFromJSONData:(NSData *)json;
  36. /**
  37. * JSON encoder
  38. *
  39. * NSarray只支持一级列表,原生类型只支持NSInteger, CGFloat, BOOL
  40. * canTolerateNil为YES ,如果value值不存在,表示该key所对应的字段做序列化是不存在,但其他字段继续做序列化
  41. * 如果为NO,表示不容忍任何value值为nil,直接返回序列化结果为nil
  42. * 如果value值为NSData类型,那么在做序列话时,该字段会被删掉,这是为了兼容,而不是直接抛异常
  43. * @return JSON string
  44. */
  45. - (NSString *)classObjectToJSONWithTolerateNilChoice:(BOOL)canTolerateNil;
  46. @end