忆点点

.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
    });
关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢