2014-02-21 247 views
0

我使用PHP服務在我的應用我收到來自服務器的響應我試圖解析響應字符串,但JSON解析器返回NULL值的響應字符串。我無法解析這個響應字符串。我有這個問題的鏡頭,但沒有人給出確切的解決方案。我正在使用SBJson解析器和NSJSONSeralization,但它返回空值。我在下面張貼我的回覆字符串,請幫我任何一個。 響應字符串無法解析使用JSON解析器

([["{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"]]) 
+0

您的PHP服務使用'json_encode'函數? – alessio271288

+0

如何從此字符串中精確轉換格式 – Murali

+0

您確定響應字符串與您打印的完全相同嗎? – CouchDeveloper

回答

1

確保您解析您的JSON如下代碼:

NSString * jsonString = @"{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"; 
NSData * jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
id jsonContainer = [NSJSONSerialization JSONObjectWithData:jsonData 
                options:NSJSONReadingMutableContainers 
                error:nil]; 
+0

串謝謝您的回覆 – Murali

+0

它的工作單字典,但它的工作爲多字典。實際上我的迴應是這樣來的。 「{\」category_id \「:\」1 \「,\」category_name \「:\」BEVERAGES \「,\」image_id \「:\」6 \「}」, 「{\」category_id \「: 「1 \」,\「category_name \」:\「BEVERAGES \」,\「image_id \」:\「7 \」}「, 」{\「category_id \」:\「3 \」,\「category_name \ 「:\」BREAKFAST \「,\」image_id \「:\」5 \「}」, 「{\」category_id \「:\」3 \「,\」category_name \「:\」BREAKFAST \ 「image_id \」:\「6 \」}「, – Murali

+0

這是一個字符串列表。有效的json字符串將如下所示:'@「[\ n {\」category_id \「:\」1 \「,\」category_name \「:\」BEVERAGES \「,\」image_id \「:\」6 \「} \ n「\」category_id \「:\」1 \「,\」category_name \「:\」BEVERAGES \「,\」image_id \「:\」7 \「},\ n {\」category_id \「: \「category \」:\「3 \」,\「category_name \」:\「BREAKFAST \」,\「image_id \」:\「5 \」},\ n {\「category_id \ 「:\」BREAKFAST \「,\」image_id \「:\」6 \「} \ n]」' –

0

這種反應

([["{\"category_id\":\"1\", \"category_name\":\"BEVERAGES\", \"image_id\":\"6\"}"]])

是不妥當的JSON。發生這種情況時,服務器「希望」發送JSON,但沒有正確完成;) - 或者您無法正確輸出JSON。

的JSON大概應該是這樣的:

[[{"category_id":"1","category_name":"BEVERAGES","image_id":"6"}]] 

[[{"category_id":1,"category_name":"BEVERAGES","image_id":6}]] 

注:鍵/值對可能會被重新排序。

此外,確保指定了正確的Accept頭值,例如請求中的「application/json」(注意:在編輯之前不正確)。

然後,在嘗試使用JSON解析器解析響應之前,請檢查狀態碼(應爲200 (OK))和MIME類型。如果你希望JSON,你應該得到一個Content-Type頭(另見NSURLResponse財產MIMEType),其值應爲application/json

+0

MIME類型爲text/html – Murali

+0

@Murali'text/html'不應該被解析爲JSON。但是,'([[「{\」category_id \「:\」1 \「,\」category_name \「:\」BEVERAGES \「,\」image_id \「:\」6 \「}」]])'doesn看起來也不像html。 – CouchDeveloper

+0

我不明白從早上起這個反應,我正在爲此工作。我仍然無法做到。我正在得到那個迴應。我已經檢查了很多次,但是迴應相同。 MIME類型:text/html – Murali

-1

最好的解決將是解決它在服務器端和編碼正常。

如果這是不可能的使用[jsonString stringByReplacingOccurrencesOfString:@"\" withString:@""];