You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从JsonObject中获取JsonValueKind?

获取JsonNode的JsonValueKind方法

你可以直接通过JsonNode的ValueKind属性获取节点类型,由于已经通过TryGetPropertyValue成功匹配到属性,此时property必然不为null,直接访问即可:

if (jsonObj.TryGetPropertyValue("property1", out JsonNode? property))
{
    JsonValueKind kind = property.ValueKind;
    var myProp = property.GetValue<string>();
}

如果编译器因可空性检查报错,可添加null包容运算符(!)明确告知编译器当前property非空:

JsonValueKind kind = property!.ValueKind;

不同类型的JsonNode对应不同的JsonValueKind:

  • JsonObject对应JsonValueKind.Object
  • JsonArray对应JsonValueKind.Array
  • JsonValue则对应具体值类型(如字符串对应String、数字对应Number等)

完整示例:

string inputString = "{\"property1\": \"demo\", \"property2\": 456}";
JsonObject jsonObj = JsonNode.Parse(inputString).AsObject();

if (jsonObj.TryGetPropertyValue("property1", out JsonNode? strProp))
{
    Console.WriteLine(strProp.ValueKind); // 输出:String
    var strValue = strProp.GetValue<string>();
}

if (jsonObj.TryGetPropertyValue("property2", out JsonNode? numProp))
{
    Console.WriteLine(numProp.ValueKind); // 输出:Number
    var numValue = numProp.GetValue<int>();
}

注意:该特性需要.NET 6及以上版本的System.Text.Json支持,低版本需升级框架。

内容的提问来源于stack exchange,提问作者ilya_i

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:19:55