3
我正在尝试与一个REST服务通话,并且我正在尝试调用一个POST
方法,我需要在邮件正文中提供一些数据。RestSharp - 如何影响JSON序列化(命名)?
我有我的模型类均能设置是这样的:
public class MyRequestClass
{
public string ResellerId { get; set; }
public string TransactionId { get; set; }
... other properties of no interest here ...
}
,我使用RestSharp在C#中调用我的REST服务是这样的:
RestClient _client = new RestClient(someUrl);
var restRequest = new RestRequest("/post-endpoint", Method.POST);
restRequest.RequestFormat = DataFormat.Json;
restRequest.AddHeader("Content-Type", "application/json");
restRequest.AddJsonBody(request); // of type "MyRequestClass"
IRestResponse<MyResponse> response = _client.Execute<MyResponse>(restRequest);
一切似乎都工作正常 - 不会引发异常。但服务与响应:
我们正在处理您的请求
遇到问题时,我看着那个东西被发送请求JSON,我看到所有属性都是大写拼音:
{ "ResellerId":"123","TransactionId":"456" }
,这导致了问题 - 服务节选它们全部用小写:
{ "resellerId":"123","transactionId":"456" }
于是,我来装饰我的C#模型类属性:
public class MyRequestClass
{
[RestSharp.Serializers.SerializeAs(Name = "resellerId")]
public string ResellerId { get; set; }
[RestSharp.Serializers.SerializeAs(Name = "transactionId")]
public string TransactionId { get; set; }
... other properties of no interest here ...
}
,但似乎并没有改变任何东西 - 的JSON请求梁具有的属性名称的首字母大写拼写,因此调用失败。
如何让RestSharp始终使用小写从C#模型类生成的JSON中的属性名称?
@CodeCaster:是的,似乎是在处理同样的问题。但是:如果将答案移到那里,我将无法接受它:-( – 2015-02-06 11:42:21