Включение свойств со значениями nil при сериализации с JSONModel

Я сериализирую пользовательский класс в Objective-C, используя JSONModel. Класс User что я пытаюсь сериализовать выглядит так:

<User> 
   [UserCount]: 658
   [CreationDate]: 2014-04-17T00:38:34.176Z
   [Credits]: 0
   [Email]: Email Address
   [Locale]: <nil>
   [DeveloperDetails]: <nil>
   [Name]: ashishagarwal
   [UserName]: ashishagarwal
   [_id]: xxxxxxxx--userid--------------
   [FirstName]: First Name
   [AuthenticationType]: <nil>
   [_deleted]: 0
   [LastActivityDate]: 2015-02-10T23:26:41.816Z
   [Type]: 0
   [IsAuthenticated]: 0
   [LastName]: Last Name
   [LastLoginDate]: 2015-02-12T03:39:50.626Z
</User>

Есть несколько nil значения, но это ожидается.

Я пытаюсь сериализовать, используя строку:

id json = [self.currentUser toJSONString];

JSON при распечатке:

{
    "UserCount": 658,
    "CreationDate": "2014-04-17T00:38:34.176Z",
    "Credits": 0,
    "Email": "Email Address",
    "Name": "ashishagarwal",
    "UserName": "ashishagarwal",
    "_id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
    "FirstName": "First Name",
    "_deleted": false,
    "LastActivityDate": "2015-02-10T23:26:41.816Z",
    "Type": 0,
    "IsAuthenticated": false,
    "LastLoginDate": "2015-02-12T03:39:50.626Z",
    "LastName": "Last Name"
}

Значения, которые были nil исчез. Есть ли способ пометить их как "нулевые" при сериализации?

1 ответ

Как отметил Роб, важно, помечено ли свойство как Optional или нет.

Если свойство помечено как Optionalи значение nilключ не выводится в результирующем JSON. Если вы удалите Optional флаг, он будет выведен как null,

Мы рассматриваем возможность внесения изменений таким образом, чтобы при Optional свойство явно установлено как NSNullзначение будет выведено как null, Посмотрите эту проблему - как только она будет решена, вы сможете сделать следующее:

self.currentUser.DeveloperDetails = [NSNull null];
NSString *json = [self.currentUser toJSONString];
Другие вопросы по тегам