/ / RestKit é a única estrutura que possui mapeamento de objetos JSON para Objective-C? - objetivo-c, cacau, json, objeto-objeto-mapeamento

O RestKit é a única estrutura que possui mapeamento de objetos JSON para Objective-C? - objetivo-c, cacau, json, mapeamento objeto-objeto

Estou procurando uma biblioteca ou estrutura que nãoJSON para mapeamento de objeto relacional Objective-C. ou seja, preciso mapear JSON contendo objetos, matriz de objetos e dicionários de objetos para meus objetos personalizados.

algo como:

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

Portanto, há um DataObject, um UserObject e ummatriz de funcionários que consiste em UserObjects. Gostaria que o mapeamento do JSON para o meu DataObject acontecesse "automaticamente", claro, como eu gostaria de descrever os objetos e as relações na classe Object e fazer o mapeamento a partir disso, em vez de mapear manualmente cada aninhado objeto. (As propriedades objetivas-c nativas de primeiro nível são feitas facilmente com setValue: forKey e outros métodos KVO, mas a partir daí fica complicado).

Eu tenho testado o RestKit, mas parecenão há como escolher qual funcionalidade você precisa dessa estrutura, é toda ou nenhuma delas, e acho que faz muito para minhas necessidades.

Alguém conhece alguma biblioteca etc. que possa fazer isso?

Agradeço antecipadamente.

Respostas:

0 para resposta № 1

O que você postou acima não é JSON válido. Se você o tornou JSON válido, o que você quer fazer é impossível sem um esquema específico, por exemplo.

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

O Dataobject é um dicionário ou um objeto? E o Usuário ou Trabalho? O que é User é uma instância do NSUser e o job é um NSDictionary?

Por outro lado, se você tiver um esquema conhecido: -

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

você não precisa de uma estrutura, pois é trivial mapear seus objetos depois de ter JSON válido. Pseudocódigo: -

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 para resposta № 2

Para mapear JSON para objetos Objective-C, tentei o RestKit. Eu o usei há um tempo, então minhas críticas podem não se aplicar mais.
O que eu descobri: boa ideia. Não é muito complicado para plug-in. Se funcionar, ótimo para você. Mas se não, ou se você precisar ir um pouco mais longe, boa sorte para depurar.
Lamento o tempo que investi nele.

Eu só estou procurando objetos JSON para Objective-C, e não o contrário. Encontrei um link no SO para JTObjectMapping - mas não consegue encontrar a resposta original. Parece mais leve e mais próximo do que eu estava pesquisando, mas não tive a oportunidade de tentar.

Uma outra classe semelhante: jastor.

Prefiro a abordagem dessas duas classes ao RestKit, pois ele só cuida de um trabalho, enquanto o RestKit tentou lidar com tudo.