2012-08-03 12 views
2

我已經閱讀並且這個錯誤似乎是來自不良的JSON。很容易,這裏是我的JSON客觀C錯誤3840 - 顯然不好的JSON,但它與JSlint驗證

{ 「年」: 「2012」, 「輪子」: 「標準」, 「反式」: 「未知」}

我的問題,這似乎是正確的,當我通過JSON lint運行它時,它返回vaild。我也使用cURL來下載這個頁面,並使用json_decode()來讀取它...工作正常。

下面是一個例子頁:http://drivingthenation.com/app/carlist/getVinDtn.php?v=JA3215H1Ç* * M &˚F= V

我跑它通過HTTPScoop和響應文本返回的唯一的事情就是

{ 「年」: 「2012」,「wheels」:「標準」,「trans」:「未知」}

在objective-c上,我使用NSURL和NSData來獲取URL,然後使用NSJSONSerialization。我可以在NSJSONSerialization之前打印出來,並且看到它實際上正在獲取數據,但是隻有當我嘗試將其格式化爲JSON時纔會出現此錯誤。有什麼想法嗎?

回答

0

默認情況下,NSJSONSerialization類預期輸入不僅僅是有效的JSON,而是有效的JSON 對象。如果你想閱讀的東西不是一個對象,你需要爲讀者指定NSJSONReadingAllowFragments選項。

+0

好的,我試過了。我的代碼現在是:[NSJSONSerialization JSONObjectWithData:jsonData選項:NSJSONReadingAllowFragments錯誤:&錯誤] 現在我得到「無效的值在字符0附近」 – 2012-08-03 21:51:14

+0

似乎有一些錯誤的URL取得方式。我創建了一個名爲get.php的獨立文件,它使用cURL從特定文件輸出JSON,而不是使用URL來獲取信息。所以我認爲這意味着我需要使用POST請求與GET請求,這僅僅是由於我發送的數據的性質? (Vin數字) – 2012-08-03 22:05:28

+0

@AustinWolff:我無法想象爲什麼會有所作爲。你確定數據沒有被破壞,就像最後看不見的垃圾字符一樣? – 2012-08-03 22:43:56