2016-08-02 79 views
0

我有一個jsonapi對象,我需要序列化成一個字符串。我如何序列化一個空的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 \ n \ n

+0

這裏有些東西或某人是非常非常困惑。顯示的內容是轉換爲字符串的JSON文檔,JSON文檔是包含單個關鍵字「數據」的字典,而單個值是空數組。我絲毫沒有想到你實際上想要做什麼。 – gnasher729

+0

當json字典實際上保持價值時它不會引起任何問題。當我刪除數組併發送它時,會發生這種情況。如果ic annot解決它,將不得不調用不同的方法爲空對象傳遞值。 – s5v

回答

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] 
+0

不知道我的帖子是否無法理解,但是我已經做了什麼 - 它拋出了錯誤 - 修改了我的帖子以包含完整帖子。 – s5v

+0

現在看到了您的編輯。你有調試,並檢查它是正確的[[notification.userInfo objectForKey:@「data」]'? –

+0

解決。謝謝。 – s5v

相關問題