Search code examples
c#asp.net-corerestsharp

Generate json key as snake_case with RestSharp


Any idea how to generate json key as snake_case with RestSharp?

With Newtonsoft.Json, I can set json output something like this

  DefaultContractResolver contractResolver = new DefaultContractResolver
            {
                NamingStrategy = new SnakeCaseNamingStrategy()
            };

            string json = JsonConvert.SerializeObject(requestData, new JsonSerializerSettings
            {
                ContractResolver = contractResolver,
                Formatting = Formatting.Indented
            });

But I not sure how can be done with RestSharp

var client = new RestClient(getService.MstUrl);

            client.AddDefaultHeader("Authorization", string.Format("Bearer {0}", token));

            var request = new RestRequest(Method.POST).AddJsonBody(requestData);          

            var response = await client.ExecuteAsync(request);

It keep generate as camelCase. Is there any configuration like Newtonsoft.Json?


Solution

  • Using RestSharp, does not mean you can't use the Newtonsoft serializer as well.

    From the restsharp documentation:

    RestSharp support Json.Net serializer via a separate package. You can install it from NuGet.

    client.UseNewtonsoftJson();
    

    And keep on going with what you did:

    DefaultContractResolver contractResolver = new DefaultContractResolver
    {
        NamingStrategy = new SnakeCaseNamingStrategy()
    };