/ / Je program RestKit jediným rámcom, ktorý má JSON na objektívne mapovanie objektov C? - Objekt c, kakao, json, mapovanie objektov a objektov

Je RestKit jediným rámcom, ktorý má objekt JSON na objektívne mapovanie objektov C? - Objekt c, kakao, json, mapovanie objektov a objektov

Hľadám knižnicu alebo rámec, ktorý to robíJSON na mapovanie vzťahových objektov Cieľ-C. t.j. musím mapovať JSON obsahujúce objekty, pole objektov a slovníky objektov na moje vlastné objekty.

niečo ako:

DataObject {
"user" : {
"name":"Peter",
"id":1234
}
"place": "UK"
"job": {
"title" : "CTO",
"salary" : 1234567
}
"employess": [
{
"name":"Carlton",
"id":1235
},
{
"name":"Hugo",
"id":12346
}]
}

Takže existuje DataObject UserObject azamestnanecké pole pozostávajúce z UserObjects. Chcel by som, aby sa mapovanie z JSON na môj DataObject stalo "automaticky", samozrejme myslené ako by som chcel popísať objekty a vzťahy v triede Object a mať mapovanie vykonané z toho namiesto ručného mapovania každého vnoreného objekt. (Vlastnosti prvého objektu na úrovni prvej úrovne sa dajú ľahko vykonať pomocou metódy setValue: forKey a iných metód KVO, ale odtiaľ sa to komplikuje).

Testoval som program RestKit, ale zdá sanie je žiadny spôsob, ako vybrať a vybrať, ktorú funkčnosť potrebujete z tohto rámca, je to buď všetko, alebo nič z toho, a ja to považujem za príliš veľa pre moje potreby.

Je niekto oboznámený s knižnicou atď. Tam, kde to môže robiť?

Vopred ďakujem.

odpovede:

0 pre odpoveď č. 1

To, čo ste uverejnili vyššie, nie je platný JSON.Ak ste urobili platné JSON, čo chcete robiť, je nemožné bez konkrétnej schémy, napr.

{
"DataObject": {
"user": {
"name": "Peter",
"id": 1234
},
"place": "UK",
"job": {
"title": "CTO",
"salary": 1234567
}
}
}

Je dátový objekt slovník alebo objekt? A čo užívateľ alebo práca? Čo je používateľom je inštancia NSUser a práca je NSDictionary?

Na druhej strane, ak máte známu schému:

[
{
"class": "DataObject",
"properties": {
"user": {
"class": "User",
"properties": {
"name": "Peter",
"id": 1234
}
},
"place": "UK",
"job": {
"title": "CTO",
"salary": 1234567
}
}
}
]

nepotrebujete rámec, pretože je triviálne mapovať svoje objekty sami, akonáhle máte platnú JSON.

createWithDict(dict) {
var newOb = create new(dict["class"]);
dict.properties.each( val, key ) {
if(val is dictionary && val.hasproperty("class"))
val = createWithDict(val)
newOb[key] = val
}
return newOb;
}

2 pre odpoveď č. 2

Ak chcete mapovať objekt JSON na objekty typu Objective-C, vyskúšal som program RestKit. Použil som to už pred chvíľou, takže moje kritiky už nemusia platiť.
Čo som zistil: pekný nápad. Nie je príliš zložité na pripojenie. Ak to funguje, skvelé pre vás. Ale ak nie, alebo ak ho budete musieť tlačiť o niečo ďalej, veľa šťastia na ladenie.
Je mi ľúto, že som do toho investoval.

Ja len hľadám JSON na Objective-C objekty, nie naopak. Našiel som odkaz na SO JTObjectMapping - ale nemôžem nájsť pôvodnú odpoveď. Zdá sa ľahšia a blízka tomu, čo som hľadala, ale ja som nemala príležitosť vyskúšať to.

Ďalšia podobná trieda: jastor.

Dávam prednosť prístupu týchto dvoch tried cez službu RestKit, pretože sa stará o jedno zamestnanie, zatiaľ čo spoločnosť RestKit sa pokúsila zvládnuť všetko.