.net core3.0 json序列化
电脑版发表于:2020/4/27 19:19
.net core3.0 开始 json序列化就换成了System.Text.Json.JsonSerializer,据说效率快一点。
使用方法基本一样
序列化:
System.Text.Json.JsonSerializer.Serialize(obj);
反序列化:
List<NoteWall> noteWalls = System.Text.Json.JsonSerializer.Deserialize<List<NoteWall>>(noteWallStr);
解决序列化中文时候编码的问题:
var options = new JsonSerializerOptions ();
options.Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create (UnicodeRanges.All);
var json=JsonSerializer.Serialize (new { title = "晓" }, options);
Console.WriteLine(json);对于 web api 项目,在 Startup 中添加如下的配置:
public void ConfigureServices(IServiceCollection services){
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
});
}符号转义问题:
string bJsonString = System.Text.Json.JsonSerializer.Serialize( value: jsonObject,
options: new System.Text.Json.JsonSerializerOptions
{
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
});
