使用SwiftyJSON处理空值

3

我正在使用一个JSON API来获取数据,一切都正常工作,但是我不太喜欢我处理结果的方式,以保证它是否为nil。这就是今天的情况:

我获取我的JSON,然后迭代它并执行以下操作

let obj = Obj()

obj.name = json["name"].string ?? ""
obj.age = json["age"].string ?? ""
obj.length = json["length"].string ?? ""

所以我会检查例如json["name"].string是否有值,否则我会将其赋为空的""。这是使用SwiftyJSON的正确方式吗?还是有更清晰的方法?
问题在于有时候json["name"].string有值但是json["age"].string没有值。
1个回答

0
在开始编写代码之前,您需要弄清楚如果一个值不存在或为 null,您实际想要做什么。显然您决定用空字符串代替所有不存在的值。这意味着您失去了区分两种情况的能力。在某些时候,这样做会带来成本。
我建议添加可调用的方法,如下:
jsonString ("name")
jsonStringOrEmpty ("name")
jsonStringOrEmptyAcceptNull ("name")

等等,每种情况都要使用我想要使用的准确方法,并在遇到意外输入时提供调试信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接