我正在使用TouchJSON框架反序列化一些JSON。解析产生的字典数组用于填充UITableView。
我解析的JSON中的一些值可能是空的。如果我将其NSLog到控制台,结果如下所示:
id = 1234;
title = "Hello, World";
description = "<null>";
detail = "The world says hello";在这里,当从服务器检索时,说明值是一个空字符串。
因此,TouchJSON认识到描述值是字符串类型的,但是服务器的初衷是通信这是一个空字符串,比如description = @"";。
如果我稍后尝试将description的值设置为UILabels text属性,该应用程序将崩溃。
所以我的问题是,我的JSON中有NSNumbers和NSStrings,我应该遍历TouchJSON反序列化方法的结果并测试所有值吗?
我无法模拟如果NSNumber值为空会发生什么,我将如何测试这个值?在这种情况下,NSNumber值是否为零,而不是"null"?
发布于 2010-11-09 09:51:56
我正在使用SBJSON库,遇到了同样的问题。我的解决方案也适用于您的情况:我更改了库,以便它处理丢失的值,并在返回的集合中将它们设置为+[NSNull null]。这使得您的客户端代码有点麻烦,因为您必须处理可能获得NSNull而不是NSString的情况。但是这只是一个更明显的版本,您必须决定@""是一个空字符串还是一个未设置的值。
https://stackoverflow.com/questions/4132206
复制相似问题