问题标签 [system.text.json]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
34059 浏览

c# - ASP.NET MVC Core API 将枚举序列化为字符串

如何在 ASP.NET MVC Core 3.0 中将枚举字段序列化为 String 而不是 Int?我无法以旧方式做到这一点。

我收到一个错误:

无法从“Newtonsoft.Json.Converters.StringEnumConverter”转换为“System.Text.Json.Serialization.JsonConverter”

0 投票
6 回答
21035 浏览

c# - System.Text.Json:使用自动转换反序列化 JSON

使用 .Net Core 3 的新 System.Text.Json JsonSerializer,您如何自动转换类型(例如 int 到 string 和 string 到 int)?例如,这会引发异常,因为idJSON 是数字,而 C#Product.Id需要一个字符串:

Newtonsoft 的 Json.Net 很好地处理了这个问题。如果您在 C# 期待一个字符串(或反之亦然)时传入一个数值并不重要,一切都会按预期反序列化。如果您无法控制作为 JSON 传入的类型格式,您将如何使用 System.Text.Json 处理此问题?

0 投票
3 回答
7455 浏览

c# - .NET core 3:JsonPropertyName (System.Text.Json.Serialization) 的序列化顺序

在迁移到 .NET Core 3 时,我已从 Newtonsoft.Json 序列化切换到 System.Text.Json.Serialization。在所有功能中,我想继续使用 JsonPropertyName 属性。

Newtonsoft 版本允许对序列化属性进行排序

有没有办法在 System.Text.Json.Serialization 中实现相同的目标?

0 投票
1 回答
1763 浏览

c# - 使用 dotnet Core 3 System.Text.Json Api 流式传输 JSON

我正在使用 dotnet Core 3.x 开发 WPF Web 客户端,并且正在使用 System.Text.Json API。我正在尝试使用 aStream在对象之间传递数据以最小化峰值内存使用量,因为正在发送一些大消息。

到目前为止,我编写的包装器方法如下所示:

但是,当 PUT 到服务器时,它似乎没有写入任何内容。

我已经看到早期 API 的用户使用PushStreamContent该类,但是这似乎在 dotnet Core 中不存在。

任何想法将不胜感激,谢谢!

0 投票
1 回答
1340 浏览

c# - 使用 ASP.NET Core 反序列化多维 JSON 数组

我已经尝试了几天来找到这个问题,也许我错过了一些东西。

当我基于 GitHub 构建示例应用程序时,我遵循了 Microsoft 的建议: https ://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-3.1

不幸的是,这段代码似乎不适用于多维数组。

我的应用程序希望从我们的 Teamwork Desk 帐户中获取信息,以便我们可以使用 ASP.NET 应用程序创建报告。

关于如何使这项工作发挥作用的任何提示或想法都会很棒。

这是我的代码:

文件夹 (Models.TeamworkDesk) | 客户.cs

文件夹(页)| Teamwork.cshtml.cs

文件夹(页)| 团队合作.cshtml

JSON 示例:

谢谢你。

0 投票
2 回答
8910 浏览

c# - 不支持使用 System.Text.JSON 的接口类型的反序列化

我将一个有效的 JSON 对象传递给我的 .net core 3 web api 应用程序上的控制器。这样做,我得到错误:

System.NotSupportedException:不支持接口类型的反序列化。键入“OrderTranslationContracts.OrderContracts+IImportOrderLineModel”

所以我查看了我的代码,我有一个接口的以下具体实现。这是我认为引发错误的行:

这是我传递给控制器​​的 JSON 部分:

所以我知道 JSON 是有效的。这是控制器的签名:

我什至没有闯入这段代码,因为我假设 JSON 反序列化器在尝试转换它时抛出了错误。那么我该如何克服这个错误呢?我受接口的具体实现的约束,所以如果可能的话,我无法更改我需要使用的接口。如果这不可能,是否有任何“解决方法”?

0 投票
2 回答
7780 浏览

c# - 使用 System.Text.Json 反序列化匿名类型

我正在为 .NET Core 3.x 更新一些应用程序,作为其中的一部分,我正在尝试Json.NET从新System.Text.Json类迁移。使用 Json.NET,我可以像这样反序列化匿名类型:

新命名空间中是否有等效方法?

0 投票
1 回答
432 浏览

asp.net-core - 当 JsonConverter 无效时产生 400 BadRequest?

我正在使用带有 System.Text.Json 的自定义 JsonConverter 以使 DateTime 具有所需的时区

我这样注册ConfigureServices

就像您在代码中看到的那样,当收到没有时区的日期时,它会崩溃并出现异常,导致错误 500 InternalServerError

我如何抛出异常以返回 400 而不触及使用 app.UseExceptionHandler (因为代码在我的库中)?

请注意,抛出的异常是 FormatException 所以,对我来说,它应该被翻译成 BadRequest ...

0 投票
5 回答
14801 浏览

c# - JsonStringEnumConverter (System.Text.Json) 是否支持空值?

我正在将我的代码从 .NET Core 2.x 转移到 .NET Core 3.x(即使用本机库System.Text.Json)。在这样做的过程中,我遇到了一些问题,即以前Newtonsoft.Json对可空枚举的支持目前没有明确的迁移路径——.NET Core 3.x 似乎不支持它?

例如,使用Newtonsoft.JsonJSON 转换器支持可为空的枚举,如下所示:

本机库的当前版本System.Text.Json,似乎不支持这一点。

我该如何解决这个问题?我无法迁移我的代码!

0 投票
2 回答
2829 浏览

c# - 如何使用 System.Text.Json 处理同一属性的单个项目和数组?

我正在尝试反序列化一些包含有时是数组,有时是单个项目的值的 JSON。我怎么能用 and 做到这System.Text.Json一点JsonSerializer?(这个问题的灵感来自Robert McLaws为 Json.NET提出的这个问题。)

我收到了以下 JSON:

我想将其反序列化为以下类型的列表:

使用以下代码:

但是,当我这样做时,会出现以下异常:

发生异常是因为 的值"category"有时是单个字符串,有时是字符串数组。如何反序列化这样的属性System.Text.Json