所以我試圖做一個返回一些Json的GET請求。從這個請求返回的json有一個id屬性,所以我使用NSJSONSerialization來解析json的類應該有一個id屬性。由於id是保留在objective-c中的,因此我無法將其作爲屬性包含在我的類中。基本上,我的問題歸結爲我應該如何確保id屬性正確解析到我的類的對象中。帶有id屬性的對象的NSJSONSerialization
回答
是,id
是保留關鍵字(雖然,作爲喬希指出,你可以使用它作爲一個變量的名字,他是相當正確的,這是一個壞主意),但它仍然可以被用來作爲一個NSDictionary
的鑰匙。例如,如果你的JSON的樣子:
{ "id" : "23432423", "name" : "Jason Boggess" }
然後可以分析它,如下所示:
NSError *error = nil;
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (error) {
NSLog(@"%s: JSONObjectWithData error: %@", __FUNCTION__, error);
return;
}
NSString *identifier = dictionary[@"id"];
NSString *name = dictionary[@"name"];
值得澄清的是,「你可以編寫**字符串**'@」id「'並且不會與類型名稱衝突。」 – 2013-07-13 22:15:08
'id id; id = [[NSObject alloc] init];'不是非法的,雖然這是一個可怕的想法。 –
是的,這真的只是一個小瑣事,@Rob;如果它與真實代碼有任何關聯,我不知道它是什麼。 –
如果通過
{
id: 123,
name: "Chris"
}
到NSJSONSerialization
作爲NSData
對象,你會得到一個NSDictionary
有兩個按鍵NSString
的與值@"id"
和@"name"
,在這一點上,你可以從價值id
鍵並將其傳遞給您的Objective-C模型上的一個屬性,該屬性名稱不是id
。一個例子是recordId
- 1. redirect_to對象記錄帶有ID屬性旁邊的字段
- 2. Nonetype對象有沒有屬性「ID」
- 3. 名單'對象有沒有屬性「帶」
- 4. 帶有列表屬性的Python對象。當對象由參數
- 5. Django'NoneType'對象沒有屬性'id'
- 6. AttributeError:'WebDriver'對象沒有屬性'id'
- 7. AttributeError'list'對象沒有屬性'id'
- 8. 「字典」對象沒有屬性「ID」
- 9. 'UserProfile'對象沒有屬性'id'
- 10. django'tuple'對象沒有屬性'id'
- 11. Sqlalchemy:'Table'對象沒有屬性'id'
- 12. 'QueryDict'對象沒有屬性'id'
- 13. AttributeError:'NoneType'對象沒有屬性'id'
- 14. AttributeError:'bool'對象沒有屬性'id'
- 15. QuerySet,對象沒有屬性ID - Django
- 16. 帶有id屬性的Ajax.Actionlink輸出
- 17. 屬性列表ID類型的對象
- 18. 帶屬性的對象反射問題
- 19. 具有對象屬性的Ruby對象
- 20. Flex Mate - 將帶有id屬性的對象發送到服務器
- 21. Django的OneToOneField'對象有沒有屬性「ID」
- 22. Django的Nonetype對象有沒有屬性「ID」
- 23. AttributeError的:「司機」對象有沒有屬性「ID」
- 24. AttributeError的:「詮釋」對象有沒有屬性「ID」 - Odoo V9社區
- 25. 將控件的ID屬性綁定到對象屬性
- 26. 'CheckoutView' 對象有沒有屬性 '對象'
- 27. 對象的屬性沒有一致性
- 28. null = True的ForeignKey字段給出'NoneType'對象沒有屬性ID
- 29. 查找具有多個ID屬性的域對象?
- 30. 添加帶有下劃線前綴屬性的對象
你可以粘貼到JSON你的問題爲清楚起見,請?我想我知道你在說什麼,但我想確認一下。 – WendiKidd
'id'作爲一個標識符不是非法的(既不是'ID'),但最好使用更具體的名稱。請參閱[在Objective-C中,ID變量的替代名稱是什麼?](http://stackoverflow.com/questions/9505518/what-is-your-alternative-name-for-id-variable-in-objective-c )。也就是說,無論你想要什麼,你都應該能夠命名你的財產。爲什麼它必須完全匹配JSON密鑰? –
沒有要求將JSON對象元素放置在與元素鍵名稱相同的變量中。我想有幾個人使用某種自動化方案將JSON對象元素分配給Objective-C對象屬性,但它遠非「平常」(與Java似乎不知道如何做其他事情的Java不同)。 –