2012-12-30 45 views
-1

如何訪問Objective-c中的高級JSON對象?這裏的JSON頂級JSON對象屬性Objective-c

{ 
    user: "user", 
    id: 39, 
    image: "img.png", 
    caption: "", 
    lat: "37", 
    lng: "-122", 
    created_at: 1356910240 
} 

...我需要做這樣的事情[JSON valueFor ???:????]

我可以添加對象 「標識符」 和訪問它像[JSON valueForKeyPath:@「identifier」]但想知道是否有另一種方式?

identifier: { 
    user: "user", 
    id: 39, 
    image: "img.png", 
    caption: "", 
    lat: "37", 
    lng: "-122", 
    created_at: 1356910240 
} 

謝謝!

+0

你用什麼解析?通常,JSON解析返回的對象是代表頂級JSON對象的'NSDictionary'。 –

+0

可能的重複http://stackoverflow.com/questions/8407577/ios-objective-c-parsing-json。 – tipsywacky

+0

我有一個自定義分析器,只需要一種方法來訪問JSON對象,而不使用'valueForKeyPath'。 –

回答

0

通常,JSON解析器將返回字典/散列/關聯數組,無論使用何種語言用於鍵/值對。

在ObjectiveC中,那將是NSDictionary。所以,你的解析器應該這樣做:

NSDictionary *data = [SomeJSONParser decodeJson:jsonString]; 

我們得到"user"來自我們會做:

[data objectForKey:@"user"]; 

但你想要的根節點?那麼你已經有了它。根節點是解析器吐出的字典。沒有神奇的方法可以調用,根節點只是解析器的結果。

如果你的「自定義分析器」工作不同,我建議你改變它。讓它做你想做的事情完全依賴於你的解析器的API以及它返回的對象類型,這兩件事情在你的問題中都讓你難以置信地模糊。

+0

Alex,你太棒了!出於某種原因,我沒有嘗試直接訪問根節點!謝謝一堆! –