繁体   English   中英

如何将 JsonElement 转换为 Int 或其他原始类型

[英]How to convert JsonElement to a Int or other primitive types

我在 .net 6.0 上有 c# webapi。 我正在从客户端获取 postdata 到 param_class 到 _input。 class 如下所示:

public class param_class
{
    public string? name { get; set; }
    public object? value { get; set; }
}

客户端将数据作为 json 字符串发送,如下所示:

{
    "name": "lotnum",
    "value": 143
}

在 webapi 中,当我获取值字段时抛出错误 JsonElement 无法转换为 Int。

var v = (int)_input.value;

如何在 .net 6.0 的 webapi 中将 JsonElement 转换为其他类型?

value类型更改为int ,默认反序列化将为您处理此问题。

现在实际发生的是,当您有一个属性的object类型时,它是JsonElement ,因为这是JS发送的类型。 但是如果你把它改成期望的类型,默认的反序列化器就会知道如何从JsonElement转换成你期望的特定类型。 (因为JsonElement本身发送它是什么类型)

当然,您可以选择按如下方式进行后期投射:

var v = ((JsonElement)_input.value).GetInt32();

几乎不建议你这样做!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM