I know this question might be a little bit old, you can pass a JsonClaimValueTypes.Json as valuetype to the new claim, this will form json object correctly, this json valuetype is under "System.IdentityModel.Tokens.Jwt" namespace
for example: claims.Add(new Claim( "Key", ,JsonClaimValueTypes.Json));