gpt4 book ai didi

c# - JSON.NET JToken 键是否区分大小写?

转载 作者:太空狗 更新时间:2023-10-29 20:52:39 26 4
gpt4 key购买 nike

我必须使用 JSON.NET 执行一些自定义反序列化,我刚刚发现它将 JToken 中的键值视为区分大小写。这是一些代码:

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
JToken token = JToken.Load(reader);
JToken version = token["version"];

string ver = version.ToObject<string>();

return new MyVersion(ver);
}

version 变量为空,即使 json 在顶层包含版本元素,它只是大写:

{
"VERSION" : "1.0",
"NAME" : "john smith"
}

有什么方法可以使用 JToken 和不区分大小写的键吗?或者可能是另一种没有 JToken 的方法可以让我获取并反序列化各个属性?

编辑:

根据评论,我最终这样做了:

JObject token = JObject.Load(reader);
string version = token.GetValue("version", StringComparison.OrdinalIgnoreCase).ToObject<string>(serializer);

最佳答案

您可以将 JToken 转换为 JObject 并执行此操作:

string ver = ((JObject)token).GetValue("version", StringComparison.OrdinalIgnoreCase)?.Value<string>();

关于c# - JSON.NET JToken 键是否区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49886411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com