我如何序列化一个空的jsonapi对象

时间:2016-08-02 14:34:24

标签: objective-c json-api

我有一个jsonapi对象,我需要序列化为一个字符串。

{\n  \"data\" : [\n\n  ]\n}

但这会导致错误

Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** +[NSJSONSerialization dataWithJSONObject:options:error:]:    
Invalid top-level type in JSON write'

这是我用来将json对象转换为字符串的代码:

    NSError * error;
NSData * jData = [NSJSONSerialization dataWithJSONObject:[notification.userInfo objectForKey:@"data"] 
options:NSJSONWritingPrettyPrinted error:&error];

NSString *jString = [[NSString alloc] initWithData:jData encoding:NSUTF8StringEncoding];

希望有人可以帮我解决这个问题。( 不涉及手动删除\和\ n

1 个答案:

答案 0 :(得分:1)

要将json对象转换为字符串,首先应将其转换为NSData,然后使用NSUTF8StringEncoding的编码将其转换为NSString

NSDictionary *jsonDict = {\n  \"data\" : [\n\n  ]\n}
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]