NSObject+AMapJsonSerialization.h
1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//
// NSObject+JsonAutoSerialize.h
// AMapFoundation
//
// Created by zhou on 2018/2/1.
// Copyright © 2018年 Amap.com. All rights reserved.
//
#import <Foundation/Foundation.h>
// 网络自动化解析数组定义宏
#define AMapJsonArray(key,type) NSArray <type *> *key; \
@property (nonatomic, strong, readonly) type *__Array__##key
#define AMapJsonMutableArray(key,type) NSMutableArray <type *> *key; \
@property (nonatomic, strong, readonly) type *__Array__##key
#define AMapNestedArray(key,type) NSArray *key; \
@property (nonatomic, strong, readonly) type *__Array__##key
#define AMapNestedMutableArray(key,type) NSMutableArray *key; \
@property (nonatomic, strong, readonly) type *__Array__##key
//#define AMapBind(key,propertyName,type) *key; \
//@property (nonatomic, strong, readonly) type *__Bind__##propertyName##__##key
@protocol AMapJsonManualSerialization <NSObject>
@optional
- (void)manualDeserializationJsonData:(NSDictionary *)jsonDictionary forInfo:(id)customInfo;
- (NSMutableDictionary *)manualSerializeObjectForInfo:(id)customInfo;
@end
@interface NSObject (AMapJsonSerialization)
// 反序列化自动解析Json数据,并根据和dictionaryJson的key匹配的属性名进行自动赋值,注意dictionaryJson需要和对象对应,注意只有非基础类型属性的解析才会回调手动解析(需实现AMapManuallParseJson协议)
- (void)amf_deserializationJsonData:(NSDictionary *)dictionaryJson forInfo:(id)customInfo;
// 将Module数据对象序列化成Json数据对象的Dictionary,对于NSString、NSMutableArray、NSNumber、NSNull、NSArray和NSMutableArray会返回nil
- (NSMutableDictionary *)amf_serializeJsonObjectForInfo:(id)customInfo;
// 将NSArray或NSMutableArray序列化成Json数据对象的数组,仅适用于是NSArray和NSMutableArray类型的对象调用,否则会返回nil
- (NSMutableArray *)amf_serializeJsonArrayForInfo:(id)customInfo;
@end