我想使用NSJSONSerialization
格式化以下格式的JSON字符串:
{
"data":{"userName":"rrullo","password":"rrullo!"},
"meta":{"appId":"S3B9CU4R2B9JTXV9254Y","appVersion":"2.1.0","serverVersion":"1.1.0","platform":"iOS","deviceToken":"1234","tm_session_id":"BB0000001234"}
}
但我不知道如何实现这种格式。请有人帮帮我......
答案 0 :(得分:2)
首先使用您的'meta'和'data'信息填充两个NSDictionaries。然后将它们添加到主NSDictionary中,然后使用NSJsonSerialization
进行序列化NSDictionary * metaDict = [[NSDictionary alloc] initWithObjectsAndKeys:
@"appId", @"S3B9CU4R2B9JTXV9254Y", @"appVersion", @"2.1.0", @"serverVersion", @"1.1.0", @"platform", @"iOS",..., nil];
NSDictionary * dataDict = [[NSDictionary alloc] initWithObjectsAndKeys:
@"userName", @"rrullo", @"password", @"rrullo!", nil];
NSDictionary * mainDict = [[NSDictionary alloc] initWithObjectsAndKeys:
@"data", dataDict, @"meta", metaDict, nil];
现在您可以使用NSJsonSerialization将该mainDict转换为NSString
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mainDict
options:NSJSONWritingPrettyPrinted
error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
希望这有帮助
答案 1 :(得分:2)
NSDictionary dictData = @{ @"UserName":@"rrullo", @"password":@"rrullo!"};
NSDictionary dictMeta = @{ @"appId":@"S3B9CU4R2B9JTXV9254Y", etc};
NSDictionary dictJSON = @{ @"data":dictData, @"meta":dictMeta };
NSError *error = nil;
NSData *dataJSON = [NSJSONSerialization dataWithJSONObject:dictJSON
options:NSJSONWritingPrettyPrinted
error:&error];
if (!error) {
NSString *jsonString = [[NSString alloc] initWithData:dataJSON encoding:NSUTF8StringEncoding];
} else {
NSLog(@"Error: %@", error);
}