您好我有2 JSON
个字符串。
第一个对象
{
"LeaveEntryCode":0,
"RequestId":0,
"EmployeeCode":17186,
"LeaveYear":2016,
"LeaveTypeCode":1,
"LeaveReasonCode":0,
"BaseType":"ess",
"StartDate":"2016-10-24T00:00:00",
"EndDate":"2016-10-24T00:00:00",
"NoOfDays":1.0,
"StartDateSession":"full",
"EndDateSession":"full",
"PreApproved":false,
"ForDate":"1901-01-01T00:00:00",
"Remarks":"test from Android",
"CoveringPersonCode":0,
"AttachedDocument":"[{\"DocumentId\":354,\"DocumentName\":\"Screenshot_2016-04-15-00-35-11.png\",\"DocumentType\":\"image/png\"}]",
"RequestStatus":"P",
"Deleted":false,
"Status":false,
"CreatedBy":0,
"CreatedDate":"0001-01-01T00:00:00",
"UpdatedBy":0,
"UpdatedDate":"0001-01-01T00:00:00",
"DeletedBy":0,
"DeletedDate":"0001-01-01T00:00:00",
"ModuleId":2,
"ObjectId":20,
"StartDateString":"10/24/2016",
"EndDateString":"10/24/2016",
"LeaveDayList":[
"10/24/2016-FH,10/24/2016-SH"
],
"SystemLeaveTypeCode":"ANN",
"LeaveTypeName":"ANNUAL",
"Employee":null,
"LieuDayList":null,
"BaseLeaveType":"ANN",
"CoveringPersonName":null,
"LeaveReasonName":"test",
"DocumentSource":"LEAVE"
}
第二个对象
{
"LeaveEntryCode":0,
"RequestId":0,
"EmployeeCode":17227,
"LeaveYear":2016,
"LeaveTypeCode":1,
"LeaveReasonCode":3,
"BaseType":"ess",
"StartDate":"2016-10-26T00:00:00",
"EndDate":"2016-10-27T00:00:00",
"NoOfDays":2.0,
"StartDateSession":"full",
"EndDateSession":"half",
"PreApproved":false,
"ForDate":"1901-01-01T00:00:00",
"Remarks":"Test attachments in things to do",
"CoveringPersonCode":0,
"AttachedDocument":null,
"RequestStatus":"P",
"Deleted":false,
"Status":false,
"CreatedBy":0,
"CreatedDate":"0001-01-01T00:00:00",
"UpdatedBy":0,
"UpdatedDate":"0001-01-01T00:00:00",
"DeletedBy":0,
"DeletedDate":"0001-01-01T00:00:00",
"ModuleId":2,
"ObjectId":20,
"StartDateString":"10/26/2016",
"EndDateString":"10/27/2016",
"LeaveDayList":[
"10/26/2016-FH,10/26/2016-SH,10/27/2016-FH,10/27/2016-SH"
],
"SystemLeaveTypeCode":"ANN",
"LeaveTypeName":"ANNUAL",
"Employee":null,
"LieuDayList":null,
"BaseLeaveType":"ANN",
"CoveringPersonName":"",
"LeaveReasonName":"test",
"DocumentSource":"LEAVE",
"AttachedDocument":"[{\"DocumentId\":352,\"DocumentName\":\"IMG_2322.JPG\",\"DocumentType\":\"JPG\"}]"
}
我希望将AttachedDocument
值放入数组中。所以我确实喜欢这个。
NSError *jsonError;
NSData *objectData = [[[[dm.mutArraySelectedReq objectAtIndex:index] objectForKey:@"RequestDetails"] valueForKey:@"RequestForm"] dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData
options:0
error:&jsonError];
if (json!=NULL) {//AttachedDocument
NSString *str=[json valueForKey:@"AttachedDocument"];
NSData *data2=[str dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json2 = [NSJSONSerialization JSONObjectWithData:data2
options:0
error:&jsonError];
if (json2!=NULL) {
NSArray *arrayAttached=[NSArray arrayWithObject:json2];
dm.mutArrayAttachedDocs=[[NSMutableArray alloc] initWithArray:arrayAttached];
}
}
我的第一个对象为str
变量提供了正确的值。但第二个对象给了我AttachedDocument
值
我只放置了AttachedDocument的键值
第一个对象
"AttachedDocument": "[
{
\"DocumentId\":354,
\"DocumentName\":\"Screenshot_2016-04-15-00-35-11.png\",
\"DocumentType\":\"image/png\"
}
]"
第二个对象
"AttachedDocument":"[
{
\"DocumentId\":352,
\"DocumentName\":\"IMG_2322.JPG\",
\"DocumentType\":\"JPG\"
}
]"
你能解释一下差异是什么(而不是image / png和JPG)。为什么我的第二个对象为AttachedDocument
提供了null
请帮我。
感谢
答案 0 :(得分:0)
是1对象是有效的JSON格式。
但是当我们检查2个对象时
{
"LeaveEntryCode": 0,
"RequestId": 0,
"EmployeeCode": 17227,
"LeaveYear": 2016,
"LeaveTypeCode": 1,
"LeaveReasonCode": 3,
"BaseType": "ess",
"StartDate": "2016-10-26T00:00:00",
"EndDate": "2016-10-27T00:00:00",
"NoOfDays": 2.0,
"StartDateSession": "full",
"EndDateSession": "half",
"PreApproved": false,
"ForDate": "1901-01-01T00:00:00",
"Remarks": "Test attachments in things to do",
"CoveringPersonCode": 0,
" AttachedDocument":null,
"RequestStatus": "P",
"Deleted": false,
"Status": false,
"CreatedBy": 0,
"CreatedDate": "0001-01-01T00:00:00",
"UpdatedBy": 0,
"UpdatedDate": "0001-01-01T00:00:00",
"DeletedBy": 0,
"DeletedDate": "0001-01-01T00:00:00",
"ModuleId": 2,
"ObjectId": 20,
"StartDateString": "10/26/2016",
"EndDateString": "10/27/2016",
"LeaveDayList": [
"10/26/2016-FH,10/26/2016-SH,10/27/2016-FH,10/27/2016-SH"
],
"SystemLeaveTypeCode": "ANN",
"LeaveTypeName": "ANNUAL",
"Employee": null,
"LieuDayList": null,
"BaseLeaveType": "ANN",
"CoveringPersonName": "",
"LeaveReasonName": "test",
"DocumentSource": "LEAVE",
" AttachedDocument&#34 ;: " [{\" DocumentId \":352,\" DocumentName \":\" IMG_2322.JPG \" \&#34 ; DocumentType \":\" JPG \"}]"
}
两个JSON对象具有相同的原因,即第二个对象在反序列化时给出NULL值的原因