TryGetValue()节点路径写嵌套返回为空
时间: 2024-11-06 08:19:14 浏览: 9
使用C#语言 读写ini文件
在使用Json.NET库的JObject或JArray尝试获取值时,如果目标节点不存在,`TryGetValue()`方法会返回一个`ValueTuple<bool, TValue>`,其中第一个元素是布尔值,表示查找是否成功,第二个元素是你期望获取的具体值(如`JToken`),如果是`null`则表明该路径不存在。
例如,假设你有这样一个JSON对象:
```csharp
JObject obj = JObject.Parse(@"{""person"": {""firstName"": ""John"", ""lastName"": ""Doe""}}");
```
如果你试图访问不存在的嵌套路径,比如`obj.TryGetValue("city", out JToken city)`,因为`city`不在原始JSON中,`city.Value`将为`null`。
```csharp
bool hasCity;
JToken city;
if (!obj.TryGetValue("city", out city))
{
hasCity = false;
Console.WriteLine("Path 'city' does not exist in the JSON object.");
// city.Value 将为 null
}
else
{
hasCity = true; // 这里hasCity将是false
}
```
当遇到这种情况时,你需要处理这个返回值以适应你的程序逻辑,比如记录错误、跳过或者默认给定值。
阅读全文