kaf*_*fka 5 c# system.text.json
我需要迭代 JsonDocument 并根据我遇到的情况执行某种检查JsonValueKind。
我尝试以这种方式进行验证检查:
public bool Dec(JsonElement Element)
{
var ElementEnumeratable = Element.EnumerateObject();
foreach (var Elm in ElementEnumeratable )
{
string name = Elm.Name;
switch (Elm.Value.ValueKind)
{
case JsonValueKind.Array:
var jArray = Elm.Value;
return Dec(jArray);
case JsonValueKind.String:
string jString = Elm.Value.GetString();
break;
case JsonValueKind.Number:
int jNumber = Elm.Value.GetInt32();
break;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是当Elm有ValueKind数组时 - 我无法将它传递给Dec看起来JsonElement有 valuekind 作为数组的数组,无法转换为EnumerateObject?
在这里做什么?
据我了解,如果ValueKind是JsonValueKind.Array那么您需要使用来迭代数组,EnumerateArray()以便您将拥有JsonElement并调用Dec foreach 元素来验证每个元素,如下所示:
public static bool Dec(JsonElement Element)
{
var ElementEnumeratable = Element.EnumerateObject();
foreach (var Elm in ElementEnumeratable)
{
string name = Elm.Name;
switch (Elm.Value.ValueKind)
{
case JsonValueKind.Array:
var jArray = Elm.Value;
foreach (var item in jArray.EnumerateArray())
{
Dec(item);
}
break;
case JsonValueKind.String:
string jString = Elm.Value.GetString();
break;
case JsonValueKind.Number:
int jNumber = Elm.Value.GetInt32();
break;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4869 次 |
| 最近记录: |