2010-03-02 186 views
0

我已將JSON解析器添加到我的項目並嘗試解析JSON字符串。在大多數字符串上,它的工作原理應該是這樣,但有時卻不行。我的第一個想法是,JSON字符串格式不正確,但我用幾個JSON驗證器檢查了它,他們都說這是正確的。我另外檢查了一些換行符的字符串,但是沒有任何字符串。JSON解析器錯誤

這是我的代碼:

// My JSON string 
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 

NSError *error = [[NSError alloc] init]; 

// result is null because of error 
NSDictionary *result = [parser objectWithString:json_string error:&error]; 

當我走在調試器一看,我得到了我的錯誤變量如下:

錯誤域= org.brautaset.JSON.ErrorDomain代碼= 3 UserInfo = 0x5168270「對象鍵值預期的對象值」

這表明某些東西與字符串中的項目不正確,但正如我在頂部所說的,我用幾個驗證器檢查了JSON字符串,並且都說沒關係。

有沒有人有一個想法是什麼可能是錯的?

謝謝你幫助我。

+0

您使用的是什麼JSON解析器?你可以發佈給你的問題的JSON字符串? – pheelicks 2010-03-02 10:35:47

+0

我使用Google最新的JSON框架:http://code.google.com/p/json-framework/ 我的JSON字符串非常長,因爲它是一個新聞源結果。我會嘗試將其粘貼到我的下一篇文章中。 – Dominik 2010-03-02 10:39:46

+0

您的字符串不完整,可能是因爲它太長了。也許一個鏈接會更好? – pheelicks 2010-03-02 10:56:22

回答

0

這很難說,但看JSON字符串「項目」就是搞笑字符用於e.g第一部分:

"content":"\u003cp\u003e\u003ca href\u003d 

也許,這是混淆解析器?或者可能的編碼是錯誤的?

當您在調試器中檢查json_string的值時,您會看到什麼?例如:

NSLog(json_string); 
0

是的,也許這是問題所在。像\ u003c這樣的字符是unicode轉義字符,它們來自orinal流,所以編碼應該沒問題。有什麼辦法將它們轉換成json兼容格式?