我的 json 键通过 RestSharp POST 后被转换为小写
My json keys are getting converted to lowercase once I POST it via RestSharp
这是我的代码:
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.RequestFormat = DataFormat.Json;
request.AddJsonBody(new
{
AccountName= "Some account name",
AccountStatus= true
});
request.AddParameter("Content-Type", "application/json; charset=utf-8", ParameterType.RequestBody);
request.RequestFormat = DataFormat.Json;
response = client.ExecutePostAsync(request).Result;
Console.WriteLine(response.Content.ToString());
}
我得到的响应是:400 (Bad Request)
然后从服务器日志中,我知道上面的代码不维护 json 键的驼峰式大小写。它作为 accountname
而不是 AcconutName
发送。 AccountStatus
.
相同
RestSharp 使用 JSON serialization in the Web context 的默认选项。您可以为客户更改这些:
var options = new JsonSerializerOptions(JsonSerializerDefaults.Web);
options.PropertyNamingPolicy = null;
client.UseSystemTextJson(options);
以上示例仍然使用 web 的默认选项,但删除了负责将 属性 名称序列化为 camel-case.
的 PropertyNamingPolicy
这是我的代码:
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.RequestFormat = DataFormat.Json;
request.AddJsonBody(new
{
AccountName= "Some account name",
AccountStatus= true
});
request.AddParameter("Content-Type", "application/json; charset=utf-8", ParameterType.RequestBody);
request.RequestFormat = DataFormat.Json;
response = client.ExecutePostAsync(request).Result;
Console.WriteLine(response.Content.ToString());
}
我得到的响应是:400 (Bad Request)
然后从服务器日志中,我知道上面的代码不维护 json 键的驼峰式大小写。它作为 accountname
而不是 AcconutName
发送。 AccountStatus
.
RestSharp 使用 JSON serialization in the Web context 的默认选项。您可以为客户更改这些:
var options = new JsonSerializerOptions(JsonSerializerDefaults.Web);
options.PropertyNamingPolicy = null;
client.UseSystemTextJson(options);
以上示例仍然使用 web 的默认选项,但删除了负责将 属性 名称序列化为 camel-case.
的 PropertyNamingPolicy