NSManagedObject to JSON - PullRequest
       30

NSManagedObject to JSON

3 голосов
/ 14 февраля 2012

У меня есть класс сущности с именем catObras, и он наследуется от класса NSManagedObject.Что я хочу сделать, это передать его через веб-сервис (POST) в форме JSON.Если я отправляю объект, я получаю это:

<catObras: 0x6d879f0> (entity: catObras; id: 0x6d859b0 <x-coredata://41B60B06-248C-488D-A14C-894E04D0395F/catObras/p2> ; data: {
Reporte = "<relationship fault: 0x6d9dc40 'Reporte'>";
calendarioVisitas = "<relationship fault: 0x6dac2c0 'calendarioVisitas'>";
catFondosInversion = "<relationship fault: 0x6d7a1b0 'catFondosInversion'>";
contratista = nil;
contrato = "XX-AYTO-ENS-BC-HABITAT-2011-IS-01";
descripcion = "AMPLIACION DE RED DE DRENAJE SANITARIO COL. VISTA HERMOSA";
direccion = nil;
estatus = nil;
fechaAprobacion = "2012-01-01 08:00:00 +0000";
fechaInicio = "2012-01-31 08:00:00 +0000";
fechaTerminacion = "2012-03-10 08:00:00 +0000";
fechaUltimoRep = nil;
idAgrupacion = 0;
idObra = 5;
inversionAprobada = 0;
inversionAutorizada = 1668000;
inversionContratada = 834000;
nota = asdasdasdasda;
numeroControl = "";
obraPartidas = "<relationship fault: 0x6d7a1f0 'obraPartidas'>";
observaciones = "muestras 2";
oficioAprobacion = "SDS/122/11/1857 OF.001";
supervisor = nil;})

Я хотел бы передать эту информацию в формате json.Прямо сейчас я использую SBJSON (он же JSON-framework).Когда я пытаюсь использовать JSONRepresentation, он посылает мне следующее:

Ошибка JSONRepresentation.Ошибка: Недопустимый тип для JSON

Есть предложения?

1 Ответ

6 голосов
/ 14 февраля 2012

Я не знаком с SBJSON, но я предполагаю, что -JSONRepresentation предназначен для вызова в NSDictionaries, а не в произвольных объектах. Вы могли бы сделать это:

NSManagedObject *managedObject = ...;
NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", ..., nil]; // These are the keys for the properties of your managed object that you want in the JSON
NSString *json = [[managedObject dictionaryWithValuesForKeys:keys] JSONRepresentation];

Метод -dictionaryWithValuesForKeys: описан в документации . Важно, что он возвращает NSDictionary, который SBJSON, вероятно, может обработать. Вам нужно быть осторожным с типами каждого атрибута в вашем подклассе NSManagedObject, чтобы быть уверенным, что они относятся к типу, который может обрабатывать SBJSON.

...