簡體   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