问题标签 [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 回答
1759 浏览

json - Json.Net JsonConstructor 属性替代 System.Text.Json

在 Json.Net 中,我们有 JsonConstructor 属性,以指示应该使用构造函数创建对象的反序列化器。

System.Text.Json 中是否有替代方案?

0 投票
1 回答
6065 浏览

c# - c#/.net core3.0 System.Text.Json - JsonSerializer.SerializeAsync?

我创建了测试控制台应用程序(使用 net core3.0),代码如下:

运行输出

{"Name":"Test","Age":18} //ok

{} //为什么?

相同的代码,但输出不同的结果,为什么?

0 投票
1 回答
3173 浏览

c# - System.Text.Json 中 Newtonsoft.Json 的 / Json.Net 的 JsonProperty 字段的等价物是什么?

我想知道 System.Text.Json 中 Newtonsoft.Json's / Json.Net'sJsonProperty字段的等价物是什么。

例子:

参考:

0 投票
6 回答
81351 浏览

c# - ASP.NET Core 3.0 System.Text.Json骆驼案例序列化

在 ASP.NET Core 3.0 Web API 项目中,如何指定System.Text.Json序列化选项以自动将 Pascal Case 属性序列化/反序列化为 Camel Case,反之亦然?

给定一个具有 Pascal Case 属性的模型,例如:

以及使用 System.Text.Json 将 JSON 字符串反序列化为Person类类型的代码:

除非JsonPropertyName与每个属性一起使用,否则不会成功反序列化,例如:

我在中尝试了以下操作startup.cs,但在仍然需要方面没有帮助JsonPropertyName

如何使用新的 System.Text.Json 命名空间在 ASP.NET Core 3.0 中设置 Camel Case 序列化/反序列化?

谢谢!

0 投票
1 回答
1803 浏览

c# - 使用 System.Text.Json.Serialization 将动态对象转换为 json 时引发异常

我想将动态对象转换为 json 字符串。当我过去使用 Newtonsoft.Json 时,它运行良好。当我将 .net 核心升级到 3.0 并改用 System.Text.Json 时,情况很糟糕。

见代码:

如果我想坚持使用 System.Text.Json 来转换动态对象,因为我听说它比其他 json 转换更快,我该怎么办?

0 投票
1 回答
12940 浏览

c# - 如何使用 System.Text.Json API 将流反序列化为对象

我从 web api 调用作为流接收响应,需要将其反序列化为模型。

这是一个通用方法,所以我不能说哪些代码部分会使用它以及响应负载是什么。

这是方法:

我正在尝试删除 Newtonsoft 并使用System.Text.Json API。

我在 Github 的 corefx 存储库中找到了这个移植指南,其中从 Stream/String 读取部分指出:

我们目前(从 .NET Core 3.0 预览版 2 开始)没有方便的 API 来直接(同步或异步)从流中读取 JSON。对于同步读取(尤其是小型有效负载),您可以将 JSON 有效负载读取到流的末尾到一个字节数组中并将其传递给阅读器

因此,遵循此建议,我提出以下建议:

所以我的问题是 - 我是否正确理解了建议,这是要走的路?

这个实现可能在很多方面都可以改进,但最困扰我的是从池中租用字节数组,例如Stream.Length一个 long ,我将它转换为 int ,这可能会导致OverflowException.

我试图研究System.IO.Pipelines并使用ReadOnlySequence<byte>JSON API 的重载,但它变得非常复杂。

0 投票
1 回答
1090 浏览

.net - 使用 Utf8JsonReader 读取整个嵌套数组

我正在尝试使用System.Text.Json's解析 GeoJSON 几何定义Utf8JsonReader
我的问题是coordinates几何定义的属性可能位于type. coordinates

  • 一个普通的双精度数组 ( [0, 1]) 用于几何类型Point
  • [[0,1],[2,3]]用于几何类型的双精度数组 ( ) 的数组LineString
  • 一个双精度数组 ( [[[0,0],[10,0],[10,10],[0,0]],[[1,1],[9,9],[1,9],[1,1]]])的数组,用于Polygon带有孔甚至是
  • 上述几何类型的数组MultiPolygon


因此,coordinates如果我不知道type.
有没有办法将其整体阅读并稍后使用解析Utf8JsonReader

0 投票
1 回答
2112 浏览

c# - 相当于将我的 newtonsoft 实现转换为 .net core 3.0 中的新 JSON 库期间的默认值

我正在将我的 .net 核心 2.1 转换为 3.0,并从 newtonsoft 升级到内置 JSON 序列化程序。

我有一些设置默认值的代码

请帮助我解决 System.Text.Json.Serialization 中的等效问题。

0 投票
1 回答
1310 浏览

c# - System.Text.Json:从 System.IO.Pipelines 反序列化

我正在使用来自 TcpClient 的 Json,为了获得低分配和良好性能的解决方案,我决定使用新的解决方案System.IO.Pipelines来处理 IO 和System.Text.Json反序列化。管道的输出是一个ReadOnlySequence<byte>. 当 中只有一个段时我没问题ReadOnlySequence,这样我就可以将此段(即 a ReadOnlySpan<byte>)传递给反序列化器。但是我应该如何处理多个细分?

到目前为止,我所拥有的是下面的代码。但在某些情况下,序列的长度太大,所以我在stackalloc. 此外,在我看来,制作数据副本违反了 System.IO.Pipelines 的意图。不应该System.Text.Json.JsonSerializer.Deserialize超载ReadOnlySequence吗?关于如何解决这个问题的任何建议?

0 投票
6 回答
14950 浏览

c# - 在 ASP.NET Core 3 中是否有使用蛇形大小写作为 JSON 命名策略的内置方式?

我设法使用以下代码使其工作:

然而,这使得 MVC 使用Newtonsoft而不是System.Text.JSON更快、异步和内置。

查看System.Text.JSON我只能找到 CamelCase 中的命名策略选项。是否有对蛇盒的本机支持?实现蛇案例 JSON 命名风格的更好方法是什么?