This is the code I am using to get a json object
NSString *requestString = @"http://url/joual/";
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:requestString]];
NSError* error;
NSArray *jsonDataArray = [[NSArray alloc] initWithArray:[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]];
NSDictionary *dictObject = [jsonDataArray objectAtIndex:1];
//NSLog(@"%@", [dictObject valueForKey:@"deviceA"]);
NSData *jsonJobData = [NSJSONSerialization dataWithJSONObject:dictObject options:kNilOptions error:&error];
JoualEntry *aJobEntry = [JoualEntry parseFromData:jsonJobData];
The jsonDataArray after serialization is
( { callGroupId = 1458762093348; callType = "NOT_RESPONDING"; callerInfoB = ( { firstName = ""; lastName = M5T2; } ); createdTime = 1460633282; deviceA = "++30(210)3453-342"; deviceB = 109; direction = INCOMING; duration = 0; }, { callGroupId = 1458762093361; callType = "NOT_RESPONDING"; callerInfoB = ( { firstName = ""; lastName = M5T5; } ); createdTime = 1460634071; deviceA = "+30(210)3453-342"; deviceB = 108; direction = INCOMING; duration = 0; }
)
I am using protobuf.io for objective c and I want to save those two joual entries to a protobuf generated class. However my code is crashing when I am trying to map json to objective c.
It is possible to read the json contents for example [dictObject valueForKey:@"deviceA"] retus correct data, however when I am trying to use parseFromData the app crashes and more specifically throws an exception here:
- (void) checkLastTagWas:(SInt32) value { if (lastTag != value) { @throw [NSException exceptionWithName:@"InvalidProtocolBuffer" reason:@"Invalid End Tag" userInfo:nil]; }
}
What I am doing wrong? Is the json file OK?