.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 });