gpt4 book ai didi

iphone - Json 解析 objective-c 中的 nil 字段

转载 作者:可可西里 更新时间:2023-11-01 17:08:42 25 4
gpt4 key购买 nike

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

当 JSON 字符串不包含该键时,是否有任何方法可以将“nil”值赋给类成员变量?

例如,这是我的 DataModel 类:

@interface DataModel : JSONModel

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

@property (strong, nonatomic) ClientModel* Client;

@end

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

状态字段可以包含“Ok”或“Error”。这里没问题。下一个字段是错误代码,以防 json 包含“错误”作为状态。

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

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

是否有任何库允许我们这样做?我目前正在使用 JSONModel,但是当缺少 key 时它会给我一个“传入数据无效”错误。我知道 Jackson API for java 可以处理这种情况,但我不知道 Objective-C 中是否有类似的东西。如果我能用 NSJSONSerialization 做一个解决方法,我也很乐意听到。

谢谢!

最佳答案

看起来 JSONModel 声明了 a protocol called "Optional"正是为这种用途而设计的。将 JSON 中可能不存在的属性声明为符合此协议(protocol),以使初始化程序不会出错:

@property (strong, nonatomic) NSString<Optional> * ErrorCode;

关于iphone - Json 解析 objective-c 中的 nil 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17796063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com