Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSManagedObject到JSON_Iphone_Objective C_Json_Nsmanagedobject_Sbjson - Fatal编程技术网

Iphone NSManagedObject到JSON

Iphone NSManagedObject到JSON,iphone,objective-c,json,nsmanagedobject,sbjson,Iphone,Objective C,Json,Nsmanagedobject,Sbjson,我有一个名为catObras的实体类,它继承自类NSManagedObject。我想做的是通过JSON格式的web服务(POST)传递它。如果我发送了对象,我会收到以下信息: <catObras: 0x6d879f0> (entity: catObras; id: 0x6d859b0 <x-coredata://41B60B06-248C-488D-A14C-894E04D0395F/catObras/p2> ; data: { Reporte = "<relati

我有一个名为catObras的实体类,它继承自类NSManagedObject。我想做的是通过JSON格式的web服务(POST)传递它。如果我发送了对象,我会收到以下信息:

<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;})
(实体:catObras;id:0x6d859b0;数据:{
报告e=“”;
calendarioVisitas=“”;
CATFONDOSERVERSION=“”;
相反=零;
contrato=“XX-AYTO-ENS-BC-HABITAT-2011-IS-01”;
description=“VISTA HERMOSA水族馆的红色放大”;
direccion=nil;
estatus=零;
fechaAprobacion=“2012-01-01 08:00:00+0000”;
fechaInicio=“2012-01-31 08:00:00+0000”;
fechatermination=“2012-03-10 08:00:00+0000”;
FECTHALLTIMOREP=零;
idAgrupacion=0;
idObra=5;
反向概率=0;
反演结果为1668000;
倒置对比度=834000;
nota=asdasda;
numeroControl=“”;
obraPartidas=“”;
observaciones=“muestras 2”;
oficioAprobacion=“SDS/122/11/1857 OF.001”;
主管=无;})
我想以json的形式传递这些信息。现在我正在使用SBJSON(又名JSON框架)。当我尝试使用JSONRepresentation时,它会向我发送以下消息:

JSONRepresentation失败。错误为:不是JSON的有效类型


有什么建议吗?

我不熟悉SBJSON,但我猜
-JSONRepresentation
应该在NSDictionary上调用,而不是在任意对象上调用。您可以这样做:

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可以处理的类型。

是的,我制作了一个包含信息的NSDictionary,尝试使用de-JSONRepresentation,但我发现“-JSONRepresentation失败。错误是:对于u-NSDate不支持JSON序列化”:(有两种方法,但可能最简单的方法是在NSManagedObject子类上创建一个名为
-dateString
的新方法。在该方法中,使用NSDateFormatter来创建日期的正确字符串表示形式。然后将
dateString
放在键数组中,而不是
date