在 C# ASP NET Core 中使用 JSON 而无需反序列化
Posted
技术标签:
【中文标题】在 C# ASP NET Core 中使用 JSON 而无需反序列化【英文标题】:Working with JSON in C# ASP NET Core without deserialization 【发布时间】:2022-01-24 06:08:07 【问题描述】:我想知道是否有一种更快、更直接的方式在 C# ASP NET Core 中进行读写,而无需创建 JSON 数据模型类。
考虑以下从 API 接收的 JSON 数据。有没有办法直接将字段读取为字符串,而无需使用 JsonSerializer 对其进行反序列化?
"data": [
"id": "100285832430"
,
"id": "102602230220"
],
"paging":
"cursors":
"before": "MTAwMTIxMDMyNDMw",
"after": "MTAyNjY4NzAyMjIw"
谢谢
【问题讨论】:
这是一个字符串。那么,你想用它做什么呢?制作模型类和根本不解析之间的“中间”解决方案是使用 JObject 或动态的。但我会在 BenchmarkDotnet 上提出任何针对对方的解决方案。结果可能令人惊讶。 您可以将您的 json 解析为dynamic
而无需类。有时我发现它很有用Example
非常感谢。我需要像dynamic
这样的东西。
【参考方案1】:
您可以非常轻松地复制一些 json 文本,然后将其转换为模型。
或者使用http://www.quicktype.io之类的东西
你也可以使用匿名对象:
https://www.newtonsoft.com/json/help/html/DeserializeAnonymousType.htm
甚至是dynamic
https://***.com/a/63457332/4122889
顺便说一句,如果您正在处理大型数据集,您还可以读取部分 json:
https://www.newtonsoft.com/json/help/html/SerializingJSONFragments.htm
我猜你也可以使用正则表达式来解析字符串或编写自定义逻辑 - 但我当然不建议这样做。
例如:\"id\": \"([0-9]*)\"
获取所有 id。
然而,这对于开发来说并不快,我怀疑它对于应用程序来说会更快。坚持使用模型和 json。我不确定你的设置,但如果你有很多模型,也许有一些事情需要自动化?
【讨论】:
非常感谢。我知道 VS 中的特殊粘贴,但是dynamic
是我正在寻找的东西。以上是关于在 C# ASP NET Core 中使用 JSON 而无需反序列化的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Asp.NET Core WEB API 中使用 .Net (C#) 在 Payload 中创建具有自定义 JSON 声明的 JWT 令牌
c# – Asp.Net Core MVC中Request.IsAjaxRequest()在哪里?
如何在 C# 页面 ASP.NET Core MVC 上使用 SignInManager 和 Usermanager
在 C# ASP NET Core 中使用 JSON 而无需反序列化