Json在objective-c中解析nil字段

Shi*_*nyx 3 iphone json objective-c ios nsjsonserialization

我将JSON映射到基础对象时遇到问题...

当JSON字符串不包含该键时,有没有办法将"nil"值放到类成员变量上?

例如,这是我的DataModel类:

@interface DataModel : JSONModel

@property (strong, nonatomic) NSString* Status;
@property (strong, nonatomic) NSString* ErrorCode;

@property (strong, nonatomic) ClientModel* Client;

@end
Run Code Online (Sandbox Code Playgroud)

该类用于解析ClientModel对象中有关客户端的一些信息,并具有ErrorCode和Status字段.

状态字段可以包含"确定"或"错误".这里没问题.如果json包含"Error"作为状态,则下一个字段是ErrorCode.

问题是服务器不会总是向我发送ErrorCode的键值(当状态为"Ok"时,服务器API不发送ErrorCode键值).

考虑到我无法修改服务器发送的JSON,如何解析我的模态对象中收到的JSON字符串,并在JSON字符串不包含时将"nil"作为ErrorCode值?

有没有允许我们这样做的图书馆?我目前正在使用JSONModel,但是当缺少密钥时,它给出了"传入数据无效"错误.我知道用于java的Jackson API处理这种情况,但我不知道在Objective-C中是否有类似的东西.如果我可以使用NSJSONSerialization进行解决方法,我也很高兴听到它.

谢谢!

Jos*_*ell 7

看起来像JSONModel声明了一个名为"Optional"的协议,它正是为了这个用途.声明JSON中可能不存在的属性符合此协议,以使初始化程序不会出错:

@property (strong, nonatomic) NSString<Optional> * ErrorCode;
Run Code Online (Sandbox Code Playgroud)