2012-02-06 68 views
1

我想解析JSON到NSDictionary中。我嘗試了很多不同的方式,而且我總是遇到同樣的錯誤。下面是最簡單的例子:解析JSON時出現無法解釋的錯誤

 NSString *response = [request responseString]; 
    NSLog(@"%@",response); 

    NSDictionary *jsonDict = [response JSONValue]; 
    NSLog(@"%@",jsonDict); 

我可以有兩種類型responseString的: 1)像{"s_login":{"error":6}}

2)類似{s_login:{"error":0,"sid":"66d4da3e870427bb"}}

所以問題是:

當responseString爲1時 - 一切正常。我可以把它做成的NSDictionary和我的NSLog告訴我:

{ 
"s_login" =  { 
    error = 6; 
}; 
} 

但當responseString是第二個變體,那麼NSDictionary中爲空,這是我現在在控制檯輸出具有什麼:

-JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object key string expected\" UserInfo=0x6043680 {NSLocalizedDescription=Object key string expected}" 

好像我已經完全描述了我的問題。任何幫助是非常希望和讚賞。感謝您的時間

回答

3

響應:

{s_login:{"error":0,"sid":"66d4da3e870427bb"}} 

不是有效的JSON字符串。它缺少圍繞s_login的雙引號。它們是強制性的。

你必須在服務器端修復它。

4
{s_login:{"error":0,"sid":"66d4da3e870427bb"}} 

應該

{"s_login":{"error":0,"sid":"66d4da3e870427bb"}}