C# 使用RestSharp生成json密钥作为snake_大小写
您知道如何使用C# 使用RestSharp生成json密钥作为snake_大小写,c#,asp.net-core,restsharp,C#,Asp.net Core,Restsharp,您知道如何使用RestSharp生成json密钥作为snake\u case 使用Newtonsoft.Json,我可以像这样设置Json输出 DefaultContractResolver contractResolver=新的DefaultContractResolver { NamingStrategy=新的蛇案例NamingStrategy() }; string json=JsonConvert.SerializeObject(requestData,新JsonSerializerSe
RestSharp
生成json密钥作为snake\u case
使用Newtonsoft.Json
,我可以像这样设置Json输出
DefaultContractResolver contractResolver=新的DefaultContractResolver
{
NamingStrategy=新的蛇案例NamingStrategy()
};
string json=JsonConvert.SerializeObject(requestData,新JsonSerializerSettings
{
ContractResolver=ContractResolver,
格式化=格式化。缩进
});
但我不确定如何使用RestSharp
var client=newrestclient(getService.MstUrl);
client.AddDefaultHeader(“Authorization”,string.Format(“Bearer{0}”,token));
var request=new RestRequest(Method.POST).AddJsonBody(requestData);
var response=wait client.ExecuteAsync(请求);
它保持生成为
camelCase
。是否有任何类似于Newtonsoft.Json
的配置?您应该能够创建自己的IRestSerializer
实现,并在客户端中提供它。使用Serializer
给定的
public class SimpleJsonSerializer : IRestSerializer
{
private readonly DefaultContractResolver _contractResolver;
public SimpleJsonSerializer()
{
_contractResolver = new DefaultContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};
}
public string Serialize(object obj) => JsonConvert.SerializeObject(obj, new JsonSerializerSettings
{
ContractResolver = _contractResolver,
Formatting = Formatting.Indented
});
public string Serialize(Parameter bodyParameter) => Serialize(bodyParameter.Value);
public T Deserialize<T>(IRestResponse response) => JsonConvert.DeserializeObject<T>(response.Content);
public string[] SupportedContentTypes { get; } =
{
"application/json", "text/json", "text/x-json", "text/javascript", "*+json"
};
public string ContentType { get; set; } = "application/json";
public DataFormat DataFormat { get; } = DataFormat.Json;
}
免责声明:我已经多年没有使用过
RestSharp
,我再也不打算使用它了。此外,我真的建议任何想用它切换回HttpClient
,或者更好的IHttpClientFactory
。更重要的是,这完全没有经过测试,只是作为一个例子。您可能需要根据自己的需要修改它,但使用RestSharp并不意味着您不能同时使用Newtonsoft
序列化程序
从:
RestSharp通过单独的包支持Json.Net序列化程序。您可以从NuGet安装它
继续你的工作:
DefaultContractResolver contractResolver = new DefaultContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};
可以分享您的经验为什么不再使用
RestSharp
?
client.UseNewtonsoftJson();
DefaultContractResolver contractResolver = new DefaultContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};