2013-01-20 63 views
-3

我最近嘗試將我應用程序中的Json庫從SBJson更改爲NSJSONSerializationNSDictionary id鍵值

當我做這份工作時,我發現有一些我無法擺脫的關鍵價值。

這裏是NSDictionary的一個例子,我得到NSJSONSerialization後:

{ 

    id = 4028; 

    "novel_author" = "XYZ"; 

    "novel_pub" = "ABC"; 

    "novel_title" = "DATE LIVE"; 

    updatedate = "2013-01-13 22:31:13"; 

    "vol_click" = 7563; 

} 

原始JSON數據字符串是:

{ 
    "id":"4028", 
    "vol_click":"7563", 
    "updatedate":"2013-01-13 22:31:13", 
    "novel_author":"XYZ", 
    "novel_pub":"ABC", 
    "novel_title":"DATE LIVE" 
} 

我不能拿到鑰匙「ID」的值了。 [NSDictionary [email protected]"id"]是無用的。

有沒有人有想法如何獲得價值?

+1

'objectForKey'應該可以正常工作。 –

+1

顯示您的代碼。 – rmaddy

+0

是的,顯示你的代碼,並在NSLog字典中的位置關於何時執行'objectForKey'。我不是NSJSONSerialization的忠實粉絲,但它不可能會把它弄糟。 –

回答

0

正如你看到NSLog("%@", dict);的輸出結果所示,JSON反序列化過程可以正常工作。

該字典包含一個名爲「id」的密鑰,因此[dict objectForKey:@"id"]也應該正常工作。

我只能得出結論,這不是你遇到麻煩的真正原因。

+0

感謝您的回答。我只是檢查鍵和對象的值,而@「id」仍然不起作用。我認爲這可能是像。你可以在NSLog中顯示這個,但是,使用(null)作爲NSString來等於這個值是沒用的。 – so898

0

這些任選其一:

 [yourDictName valueForKey:@"id"] 
    [yourDictName objectForKey:@"id"] 

如果你能使用的NSLog顯示字典中看到價值,那麼它的存在。除此之外,確保你的對象沒有被釋放或釋放或釋放。