首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Blazor WASM NodaTime 6中为System.Text.Json配置System.Text.Json序列化

如何在Blazor WASM NodaTime 6中为System.Text.Json配置System.Text.Json序列化
EN

Stack Overflow用户
提问于 2022-06-03 22:39:04
回答 2查看 207关注 0票数 1

如何在Blazor WASM NodaTime 6中为System.Text.Json配置System.Text.Json序列化?在WebApi中,你会做builder.Services.AddControllers().AddJsonOptions(settings => settings.JsonSerializerOptions.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb));

但是在Blazor WASM中没有控制器。

这也不起作用:builder.Services.Configure<JsonSerializerOptions>(options => options.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb));

var options = new JsonSerializerOptions().ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);和向HttpClient提供服务也不起作用。

EN

回答 2

Stack Overflow用户

发布于 2022-08-02 12:13:29

这个很管用。

JsonSerializerOptions default = new JsonSerializerOptions(JsonSerializerDefaults.Web).ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);

票数 1
EN

Stack Overflow用户

发布于 2022-07-27 22:25:55

这是一个黑客和一个解决办法,但我最终使用了Newtonsoft。

代码语言:javascript
复制
//Should work but doesn't
var options = new JsonSerializerOptions().ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);
var customClassList = await Http1.GetFromJsonAsync<List<customClass>>($"api/CustomClass", options);

//First: Get the raw json string        
var response = await Http1.GetAsync($"api/CustomClass");
var content = await response.Content.ReadAsStringAsync();

//Second: Deserialize with Newtonsoft
var settings = new JsonSerializerSettings();
settings.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);
var customClassList = JsonConvert.DeserializeObject<List<CustomClass>>(content, settings);

//Doesn't work (System.Text.Json)
var customClassList = JsonSerializer.Deserialize<List<CustomClass>>(content, options);

我怀疑这与Blazor/WASM有关,因为上面的代码基本上是json和nodatime与System.Text.Json的默认示例。然而,我没有任何奇怪的错误或异常与我的Blazor应用程序。它只是没有正确地反序列化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72495760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档