0

我正在使用JSONModel在 Objective-C 中序列化一个自定义类。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消失了。有没有办法在序列化时将它们标记为“null”?

4

1 回答 1

0

正如 Rob 所指出的,该属性是否标记为很重要Optional

如果属性标记为Optional,并且值为nil,则不会在结果 JSON 中输出键。如果删除Optional标志,它将输出为null.

我们正在考虑进行更改,以便当一个Optional属性显式设置为NSNull时,该值将输出为null查看此问题- 解决后,您将能够执行以下操作:

self.currentUser.DeveloperDetails = [NSNull null];
NSString *json = [self.currentUser toJSONString];
于 2016-01-12T12:04:03.623 回答