2014-02-13 24 views
1

我在使用AFNetworking 2.0解析JSON時遇到了一些問題。當新行字符帶有響應數據時,它總是執行失敗塊。使用AFNetworking 2.0解析JSON時出現錯誤,當新行字符出現在數據響應中時

我的代碼 -

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.responseSerializer   = [AFJSONResponseSerializer serializer]; 
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; 

[manager GET:@"http://mobile.MYSERVICENAME/outbox.aspx?u=SONALI2547&p=25472870&sender=sjssgn" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) 
{ 
    NSLog(@"%@", responseObject); 
} 
failure:^(AFHTTPRequestOperation *operation, NSError *error) 
{ 
    NSLog(@"%@", error); 
}]; 

錯誤 -

錯誤域= NSCocoaErrorDomain代碼= 3840 「的操作無法完成 (可可錯誤3840)」 (大約在 字符512的非轉義控制字符。)UserInfo = 0xa279660 {NSDebugDescription =未轉義的 字符512附近的控制字符。}

enter image description here 我檢查我檢查jsonlint它給我上述錯誤我的網址。

+1

請問http://jsonlint.com說你的JSON有效嗎?什麼是控制角色? – Wain

+0

@wain當新行出現時,它顯示無效的JSON,但相同的URL在瀏覽器中運行良好,並且使用JSONParsing而不使用AFNetworking時,僅當我使用AFNetworking2.0時會發生問題。 – Ravikant

+1

獲取更多信息的最簡單方法是獲取響應數據(因爲它以字節序列形式出現,又名NSData對象),從中創建一個NSString(例如'[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding ]')並將該字符串輸出到控制檯。然後檢查索引512處的字符。注意:在解碼的JSON中不允許非轉義的控制字符表示源字符串。 – CouchDeveloper

回答

0

我有同樣的問題。問題可能與服務器的編碼和解碼方式有關。在您的JSON中將「\ n」替換爲「\ n」,那麼它將會很好。

相關問題