Change code to
NSDictionary *innerMessage = @{
@"nonce":@12,
@"payload":@{@"login": @{}}
};
NSError * err;
NSData * innerMessageData = [NSJSONSerialization
dataWithJSONObject:innerMessage options:0
error:&err];
This will create the desired response
{
nonce = 12,
payload = {
login = {}
},
}