0

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

我解析的 JSON 中的某些值有可能为空。如果我NSLog将其发送到控制台,这将导致如下所示的值:

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

从服务器检索时,这里的描述值是一个空字符串。

所以 TouchJSON 识别出描述值是字符串类型,但是服务器的初衷是传达这是一个空字符串,比如description = @"";

如果我稍后尝试将 description 的值设置为UILabelstext 属性,则应用程序将崩溃。

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

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

4

1 回答 1

2

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

于 2010-11-09T09:51:56.800 回答