Ios NSJSONSerialization能否处理null?
我有一个JSON提要:Ios NSJSONSerialization能否处理null?,ios,json,null,nsjsonserialization,Ios,Json,Null,Nsjsonserialization,我有一个JSON提要: { "createEntities": [ { "username": "hackImport", "deleted": false, "myName": "Stocks", "dateSynced": "2012-07-05T12:00:00-04:00", "uuidKey": "132256ef-1e94-483f-a87d
{
"createEntities": [
{
"username": "hackImport",
"deleted": false,
"myName": "Stocks",
"dateSynced": "2012-07-05T12:00:00-04:00",
"uuidKey": "132256ef-1e94-483f-a87d-35caeee636db",
"dateModified": "2012-04-13T08:06:17.077971-04:00",
"sortKey": 5,
"dateCreated": "2012-04-13T08:06:17.077971-04:00"
},
{
"username": "hackImport",
"deleted": false,
"myName": "Foreign Currency",
"dateSynced": "2012-07-05T12:00:00-04:00",
"uuidKey": "43510d43-f17a-4d06-9138-0a304b9f09ff",
"dateModified": "2012-04-13T08:06:17.077971-04:00",
"sortKey": 2,
"dateCreated": "2012-04-13T08:06:17.077971-04:00"
},
{
"username": "adamek",
"deleted": false,
"myName": "Real Estate",
"dateSynced": "2012-07-05T12:00:00-04:00",
"uuidKey": "57a365e0-fa9c-4e47-b77b-5a3f23d3dbee",
"dateModified": "2012-04-22T14:33:43.464506-04:00",
"sortKey": 3,
"dateCreated": "2012-04-13T08:06:17.077971-04:00"
},
{
"username": "adamek",
"deleted": false,
"myName": "Mutual Funds",
"dateSynced": "2012-07-05T12:00:00-04:00",
"uuidKey": "8bd3f71c-9255-4505-87f7-a48a2665d366",
"dateModified": "2012-05-01T19:28:15.897377-04:00",
"sortKey": 7,
"dateCreated": "2012-04-13T08:06:17.077971-04:00"
},
{
"username": "hackImport",
"deleted": false,
"myName": "U.S. Currency",
"dateSynced": "2012-07-05T12:00:00-04:00",
"uuidKey": "ea2a086c-ddbd-4b75-ac29-130626a4f11b",
"dateModified": "2012-04-13T08:06:17.077971-04:00",
"sortKey": 1,
"dateCreated": "2012-04-13T08:06:17.077971-04:00"
},
{
"username": "hackImport",
"deleted": false,
"myName": "Other Property",
"dateSynced": "2012-07-05T12:00:00-04:00",
"uuidKey": "ec04d62e-97bf-4c0d-b64e-4b212fda6215",
"dateModified": "2012-04-13T08:06:17.077971-04:00",
"sortKey": 4,
"dateCreated": "2012-04-13T08:06:17.077971-04:00"
},
{
"username": "hackImport",
"deleted": false,
"myName": "Bonds",
"dateSynced": "2012-07-05T12:00:00-04:00",
"uuidKey": "fad7d556-c922-49c3-b7dd-ffa96eab9c55",
"dateModified": "2012-04-13T08:06:17.077971-04:00",
"sortKey": 6,
"dateCreated": "2012-04-13T08:06:17.077971-04:00"
}
],
"modifyEntities": null,
"deleteEntities": null,
"entity": "CommodityTypes"
}
说它是有效的
然而:
[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&jsonError]
由于-[\uu NSDictionaryM length]:无法识别的选择器发送到实例0x8ba2200而失败
错误
Python 3.2使用json.dumps
在服务器上生成json。json.dumps将PythonNone
转换为json字符串中的null
知道这失败的原因吗?是的,NSJSONSerialization
可以处理null
,请检查以下内容:
NSString *input = @"{ \"value\": null }";
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
id JSONValue = [[NSJSONSerialization JSONObjectWithData:data options:0 error:&error] objectForKey:@"value"];
NSLog(@"(%@), %@ error: %@", [JSONValue class], JSONValue, error);
输出:
2012-07-15 12:06:55.614 TestProj[25329:503] (NSNull), <null> error: (null)
2012-07-15 12:06:55.614测试项目[25329:503](NSNull),<null>错误:(null)
这意味着您的问题在别处,如果我大胆猜测,jsonData
是实例对象NSMutableDictionary
,而不是NSData
是的,NSJSONSerialization
可以处理null
,请检查以下内容:
NSString *input = @"{ \"value\": null }";
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
id JSONValue = [[NSJSONSerialization JSONObjectWithData:data options:0 error:&error] objectForKey:@"value"];
NSLog(@"(%@), %@ error: %@", [JSONValue class], JSONValue, error);
输出:
2012-07-15 12:06:55.614 TestProj[25329:503] (NSNull), <null> error: (null)
2012-07-15 12:06:55.614测试项目[25329:503](NSNull),<null>错误:(null)
这意味着您的问题在其他地方,如果我大胆猜测,jsonData
是实例对象NSMutableDictionary
,而不是NSData
您的jsonData被释放。检查jsonData是否仍然是有效指针。您的jsonData已解除分配。检查jsonData是否仍然是有效指针。对象“jsonData”的类是什么?对象“jsonData”的类是什么?