2012-02-08 152 views
0

在來自Web服務的JSON響應中,字符串包含HTML字符。 例如「text」:「\ x3ca href \ x3d \ x22http:// word ....」等等等等解析JSON字符串IOS - HTML字符

我正在使用SBJSON解析器。解析(轉換爲字典)失敗。

我想我需要在給予SBJSON解析器之前用實際字符替換這些HTML字符。有相同的實用方法嗎?

任何幫助真的很感激。

-mia

回答

0

您的第一個JSON字符是錯誤的。 '\ x3ca'不是有效的JSON字符。你的編碼出錯了。 '<'的JSON等效項是'\ x3c'。 如果你在'\ x3ca'替換'\ x3c',你會得到解析結果 「< href =」http:// word ...「 我的建議是檢查Web服務如何編碼特殊字符,如<,>,&,=等等在它發送響應我認爲這是其中誤差是

(而作爲一個括號,這些都是JSON字符,而不是HTML字符:P)。

+0

首先它不是我的Web服務器冰 :-)。它來自谷歌非官方字典API的響應。你的建議工作正常(謝謝你),但解析仍然失敗。我試過這樣 - NSString * temp = @「{\」text \「:\」\ x3c href \ x3d \ x22http:// word .... \「}」; NSDictionary * tempdict = [parser objectWithString:temp error:nil]; NSLog(@「json string =%@」,temp); NSLog(@「converted dict =%@」,tempdict); AND oupput is json string = {「text」:「 mia 2012-02-08 09:08:23

+0

嘗試使用錯誤參數,看看它說什麼。在你的例子嘗試像這樣:NSError * error = nil; NSString * temp = yourString; NSDictionary * tempDict = [解析器objectWithString:溫度錯誤:&錯誤];並記錄錯誤 – Vlad 2012-02-08 09:57:25

+0

這是錯誤「error = Error Domain = org.brautaset.SBJsonParser.ErrorDomain Code = 0」標記[h]的非法開始「UserInfo = 0x6b2e960 {NSLocalizedDescription =標記[h]的非法開始} – mia 2012-02-10 08:42:10

0

SBJSON期望的鑰匙被包含在「」,否則它會抱怨無論第一個鑰匙的第一個字符。