シーケンス化方法json
NSMutableData packet = [[NSMutableData alloc] init]; [packet appendBytes:&msg.packetType, sizeof(msg.packetType)]; char *str = [yourString UTF8String]; int len = strlen(str); [packet appendBytes:(void*)&len, sizeof(len)]; [packet appendBytes:(void*)str, len];
To parse packet back, you should do:
NSData packet; // your packet [packet getBytes:(void*)&packet.msg range:NSMakeRange(0, sizeof(packet.msg))]; int len; [packet getBytes:(void*)&len range:NSMakeRange(sizeof(packet.msg), sizeof(len)]; NSData *strData = [packet subdataWithRange:NSMakeRange(sizeof(packet.msg) + sizeof(len)), packet.length]; NSString *str = [[NSString alloc] initWithData:strData encoding:UTF8Encoding];
NSJsonparser
(IBAction)touchWriteButton:(id)sender {
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setValue:@"Anthony" forKey:@"First Name"];
[dictionary setValue:@"Robbins" forKey:@"Last Name"];
[dictionary setValue:[NSNumber numberWithUnsignedInteger:51] forKey:@"Age"];
NSArray *arrayOfAnthonysChildren = [[NSArray alloc] initWithObjects:@"Anthony's Son 1", @"Anthony's Daughter 1", @"Anthony's Son 2", @"Anthony's Son 3", @"Anthony's Daughter 2", nil];
[dictionary setValue:arrayOfAnthonysChildren forKey:@"children"];
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
if (error) {
NSLog(@"dic->%@",error);
}
[dictionary release];
BOOL succeed = [jsonData writeToFile:JSON_PATH atomically:YES];
if (succeed) {
NSLog(@"Save succeed");
}else {
NSLog(@"Save fail");
}
}