Включение свойств со значениями 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];