Работа со значениями <'null>' в TouchJSON - PullRequest
0 голосов
/ 09 ноября 2010

Я десериализирую некоторые JSON, используя TouchJSON framework.Массив словарей, получаемый при разборе, используется для заполнения UITableView.

. Существует вероятность того, что некоторые значения в анализе JSON I будут пустыми.В результате, если я NSLog отправлю его на консоль, значения будут выглядеть следующим образом:

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

Здесь значение description было пустой строкой при получении с сервера.

Итак, TouchJSON распознает, что значения описания имеют тип string, но первоначальное намерение сервера было сообщить, что это пустая строка, например description = @"";

Если я позже попытаюсьустановите значение description в текстовое свойство UILabels, которое приведет к сбою приложения.

Итак, мои вопросы: у меня есть и NSNumbers, и NSStrings в JSON, если я должен пересечь результат десериализации TouchJSONметод и проверить все значения и как мне это сделать?

Я не могу смоделировать, что произойдет, если значение NSNumber будет пустым, как я могу проверить это?Будет ли значение NSNumber равным нулю в этом случае вместо «нулевого»?

1 Ответ

2 голосов
/ 09 ноября 2010

Я использовал библиотеку SBJSON и столкнулся с той же проблемой.Мое решение применимо и к вашему случаю: я изменил библиотеку так, чтобы она обрабатывала пропущенные значения, устанавливая их в +[NSNull null] в возвращаемой коллекции.Это делает ваш клиентский код немного вялым, потому что вам приходится обрабатывать случаи, когда вы можете получить NSNull вместо NSString.Но это всего лишь более очевидная версия бородавки, где вы должны решить, означает ли @"" пустую строку или неустановленное значение.

...