动态 c# ValueKind = Object

Nam*_*mar 7 c# asp.net-core system.text.json

因为我正在尝试 使用调试器使用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 = _Context.Staffs.FirstOrDefault(j => j.Username == "");
                if (_Staff != null)
                {
                    _Staff.OTP = OtpData.OTP;                    
                    _Staff.VerififedOTP = true;
                    _Context.SaveChanges();
                    Result = true;
                }
            }

            return Ok(new { Result = Result });
        } 
Run Code Online (Sandbox Code Playgroud)

更新 2: 因为我是通过Postman application发布的。

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

rea*_*Pro 10

public async Task<dynamic> PostAsync([FromBody] Object post)
{
     var data = JsonConvert.DeserializeObject<dynamic>(post.ToString());
Run Code Online (Sandbox Code Playgroud)


Ank*_*ori 5

从 Asp.net Core 3.0 的新版本开始,微软推出了 System.Text.Json,它引入了新的JsonElement ValueKindso ValueKindis from System.Text.Jsonlibrary 和JsonConvertis from Newtonsoftlibrary。

解析度 :-

您可能在序列化您可能使用过的对象Newtonsoft.Json和反序列化您可能使用过的对象时混合了库,System.Text.Json反之亦然。


小智 -1

public class OtpData { 
[JsonPropertyName("OTP")] 
public string Otp { get; set; } 
[JsonPropertyName("UserName")] 
public string UserName { get; set; } 
[JsonPropertyName("type")] 
public string Type { get; set; } 
} 
public IActionResult ValidOTP(OtpData data) 
{ 
bool result = false; 
if (data.Type.ToString() == "SuperAdmin") { } 
} 
Run Code Online (Sandbox Code Playgroud)