处理<'null>' TouchJSON中的值

时间:2010-11-09 09:36:44

标签: iphone ios touchjson

我正在使用TouchJSON框架反序列化一些JSON。来自解析的字典数组用于填充UITableView

我解析的JSON中的某些值可能是空的。如果我NSLog它到控制台,则会产生如下值:

id = 1234;
title = "Hello, World";
description = "<null>"; 
detail = "The world says hello";

从服务器检索时, description 值为空字符串。

因此TouchJSON识别出描述值是字符串类型,但服务器的初衷是为了进行通信,这是一个空字符串,例如description = @"";

如果我稍后尝试设置描述的值,为UILabels文本属性的应用程序会崩溃。

所以我的问题是,我都NSNumbers和NSString的在JSON,我应该遍历从TouchJSON的反序列化方法的结果,并测试所有值,我会怎么做呢?

我无法模拟如果NSNumber值为空会发生什么,我将如何测试?在这种情况下,NSNumber值是否为nil而不是“null”?

1 个答案:

答案 0 :(得分:2)

我正在使用SBJSON库并遇到了同样的问题。我的解决方案也适用于您的情况:我更改了库,以便 it 处理缺失值,并将其设置为返回的集合中的+[NSNull null]。这使得您的客户端代码有点肮脏,因为您必须处理可能会获得NSNull而不是NSString的情况。但这只是疣的一个更明显的版本,你必须决定@""是指空字符串还是未设置的值。