我正在尝试在我的设置中设置这样的全局序列化设置global.asax.
var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
formatter.SerializerSettings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
TypeNameHandling = TypeNameHandling.Objects,
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
Run Code Online (Sandbox Code Playgroud)
使用以下代码序列化对象时,不使用全局序列化程序设置?
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(JsonConvert.SerializeObject(page))
};
Run Code Online (Sandbox Code Playgroud)
是不是可以像这样设置全局序列化设置,还是我错过了什么?
在ASP.NET Core 3.0 Web API项目中,如何指定System.Text.Json序列化选项以自动将Pascal Case属性序列化/反序列化为Camel Case,反之亦然?
给定具有Pascal Case属性的模型,例如:
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以及使用System.Text.Json将JSON字符串反序列化为Person类类型的代码:
var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}";
var person = JsonSerializer.Deserialize<Person>(json);
Run Code Online (Sandbox Code Playgroud)
除非将JsonPropertyName与以下每个属性一起使用,否则不会成功反序列化:
public class Person
{
[JsonPropertyName("firstname")
public string Firstname { get; set; }
[JsonPropertyName("lastname")
public string Lastname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在中尝试了以下方法startup.cs,但在仍然需要方面没有帮助JsonPropertyName:
services.AddMvc().AddJsonOptions(options =>
{
options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
options.JsonSerializerOptions.PropertyNamingPolicy = …Run Code Online (Sandbox Code Playgroud)