2014-05-17 40 views
1

我已將此Google搜索結果導向死亡並找不到正確的答案。也許我沒有正確地解答這個問題。我有一個提供JSON提要的Web服務。我登錄並驗證我的用戶名和密碼,然後解析一些JSON提要,並按照以下方式將它插入NSArray。解析JSON訂閱源後處理NSArray中的Unicode字符

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
self.urlData = [[NSMutableData alloc] init]; 
NSLog(@"DID RECEIVE RESPONSE"); 
} 


- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data 
{ 
//NSLog(@"THE RAW DATA IS %@", data); 
[self.urlData appendData:data]; 

//NSData 
NSString *strRes = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; 

//NSLog(@"LOGGING THE DATA STRING %@", strRes); 

} 


- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 

NSError *jsonParsingError = nil; 



self.parsedJSONFeed = [NSJSONSerialization JSONObjectWithData:self.urlData options:0 error:&jsonParsingError]; 

self.titleList = [_parsedJSONFeed valueForKeyPath:@"response.page_items.title"]; 
self.dateList = [_parsedJSONFeed valueForKeyPath:@"response.page_items.date"]; 

//NSLog(@"RESPONSE: %@",[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]); 

if (jsonParsingError) { 

    NSLog(@"JSON ERROR: %@", [jsonParsingError localizedDescription]); 

} else { 
    //NSLog(@"PARSED OBJECT %@", parsedObject); 

    //NSLog(@"OBJECT: %@", [object class]); 

} 

[self.tableView reloadData]; 

} 

所以現在「self.titleList」是包含文本,但在Unicode字符也通過從JSON提要通過一個NSArray。有沒有辦法來防止這種情況發生,或者在解析JSON提要之前/之後轉換這些unicode字符?提前致謝。

+0

驗證是沒有意義的;從您的問題中刪除代碼,併發布導致問題的字符示例。我知道\字符將會在某處輸出,並且理解(對於我們和你),這個字符是在JSON中還是由你使用視圖字符數據的任何機制來添加是很重要的。因此,請找到一些方式向我們(和您自己)展示這一點。除此之外,一個結構良好的問題+1。 – trojanfoe

+0

好點。我已經刪除了驗證碼。基本上,NSArray中的任何特殊字符都被類似的Unicode代碼所替代。即連字符,雙/單引號等。如果我NSLog(NSDictionary)_parsedJSONFeed或(NSArray)self.titleList它們都包含Unicode代碼,而不是實際的特殊字符。如果我直接在瀏覽器中查看JSON,則不存在Unicode編號,它們的特殊字符正確無誤。 – user3595777

回答

0

因此,如果有人登陸這個頁面上有同樣的問題。事實上,他們是導致問題的HTML編碼的unicode實體。

將此類:https://github.com/Koolistov/NSString-HTML類別導入到您的項目中,並將您的NSString發送到相關方法。現在所有的工作都很好。