相关疑难解决方法(0)

System.Text.Json 中 JObject 的等效项

我有一个属性类型为 的 DTO 类JObject。此 DTO 类在多个服务之间通过 HTTP 发送/接收。使用 JObject 是因为ExtractedData它没有预定义的属性

public class MyDTO
{
    public JObject ExtractedData {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我正在将此项目转换为 .NET 5。什么相当于 .NET 5 中的 JObject?我试图避免 JsonDocument 因为(来自文档):

JsonDocument 将数据的内存视图构建到池化缓冲区中。因此,与 Newtonsoft.Json 中的 JObject 或 JArray 不同,JsonDocument 类型实现 IDisposable 并且需要在 using 块中使用。

我打算使用JsonElement. 这是最合适的选择还是有任何其他类型可用于将 JSON 作为对象保存?

c# .net-5 system.text.json

11
推荐指数
2
解决办法
4758
查看次数

动态 c# ValueKind = Object

因为我正在尝试 使用调试器使用JsonSerializer.Deserialize访问对象值
在此处输入图片说明

这是我在下面的结果。

  OtpData = ValueKind = Object : "{
        "OTP":"3245234",
        "UserName":"mohit840",
        "type":"SuperAdmin"
    }"
Run Code Online (Sandbox Code Playgroud)

当我尝试使用var Data = JsonSerializer.Deserialize(OtpData)它访问它时,会出现以下错误。
在此处输入图片说明

我如何访问内部并获取以下对象的值。

"OTP":"3245234",
        "UserName":"mohit840",
        "type":"SuperAdmin"
Run Code Online (Sandbox Code Playgroud)

更新 :

        [AllowAnonymous]
        [HttpPost("ValidateOTP")]
        public IActionResult ValidOTP(dynamic OtpData)
        {
            bool Result = false;
            var Data = JsonSerializer.Deserialize(OtpData);            
            if (OtpData.type == "SuperAdmin")
            {
                Users _Users = _Context.Users.FirstOrDefault(j => j.Username == "");
                if (_Users != null)
                {
                    _Users.OTP = OtpData.OTP;                    
                    _Users.VerififedOTP = true;
                    _Context.SaveChanges();
                    Result = true;
                }
            }
            else
            {
                Staff _Staff = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core system.text.json

7
推荐指数
3
解决办法
1万
查看次数

System.Text.Json 无法访问 dispose jsonDocument

有人可以帮我解决这个错误吗?直到现在我还无法解决这个问题。我不知道问题出在哪里。

“无法访问已处置的对象。对象名称:'JsonDocument'”

我刚刚开始使用“Sytem.Text.Json”,这就是为什么我仍在学习并想知道如何正确使用它。

谢谢。

  public static async Task<JsonElement> ParseJsonData(string api, CancellationToken ct)
    {
        clientHandler = new HttpClientHandler()
        {
            UseProxy = Proxy.IsUseProxy ? true : false,
            Proxy = Proxy.IsUseProxy ? new WebProxy($"{Proxy.ProxyHost}:{Proxy.ProxyPort}") : null,
            //ServerCertificateCustomValidationCallback = (sender, certificate, chain, errors) => { return true; },
            // SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls
        };
        var uri = new Uri(api, UriKind.Absolute);
        utils.SetConnection(uri);
        client = new HttpClient(clientHandler);
        using (var request = new HttpRequestMessage(HttpMethod.Get, uri))
        {
            AddRequestHeaders(request, uri);
            return await ResponseMessage(request, ct);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# system.text.json

4
推荐指数
1
解决办法
1457
查看次数

标签 统计

c# ×3

system.text.json ×3

.net-5 ×1

asp.net-core ×1