从 JObject 中选择并删除嵌套键值



我有一个 JObject,我想检查是否存在某个键值对,如果是,则从键中获取值,然后删除键。

JObject-props
{
"name": "Red Game",
"id": "0060a00000alKw3AAE",
"statecode": 0,
"StudioId": {
"pfstudioid": "B20996D68598FF7F"
},
"statuscode": 1,
"lastapicall": "2018-10-11T00:00:00Z"
}

在我的代码中,我有:

if (props.ContainsKey("StudioId.pfstudioid"))
{
string value= props.GetValue("StudioId.pfstudioid")                      
props.Remove("StudioId.pfstudioid");
}

但它没有发现它们键存在于 JObject 中并跳过if条件块。我如何正确编写?

问题不在于您的.ContainsKey方法,而在于props.Remove()。不能使用点表示法来删除子项。您可以通过以下方式删除此密钥:

props.Value<JObject>("StudioId").Remove("pfstudioid");

在这里查看我的 .net 小提琴:https://dotnetfiddle.net/8mVEaa

最新更新