C# JSON.NET:当键包含点时获取嵌套值?
我想使用JSON.NET访问嵌套值。我知道我可以使用C# JSON.NET:当键包含点时获取嵌套值?,c#,json.net,C#,Json.net,我想使用JSON.NET访问嵌套值。我知道我可以使用.SelectToken()方法访问嵌套值(例如,请参阅或)。我的问题是,我试图访问的JSON中有带点的键: var json = @" { ""data.dot"": { ""value"": 5, } }"; var jo = JObject.Parse(json); Console.WriteLine(jo.SelectToken("data.dot.value")); // <-- doesn't work v
.SelectToken()
方法访问嵌套值(例如,请参阅或)。我的问题是,我试图访问的JSON中有带点的键:
var json = @"
{
""data.dot"": {
""value"": 5,
}
}";
var jo = JObject.Parse(json);
Console.WriteLine(jo.SelectToken("data.dot.value")); // <-- doesn't work
var json=@”
{
“”数据点“”:{
“值”:5,
}
}";
var jo=JObject.Parse(json);
Console.WriteLine(jo.SelectToken(“data.dot.value”);// 我在写这个问题时找到了答案,所以我不妨分享一下我的发现
事实证明,.SelectToken
方法非常强大,并且:
- 用
['{key}']
就我而言,我可以写:
jo.SelectToken("['data.dot'].value"); // escaped property
jo.SelectToken("$..value"); // complex JSON path
我也可以使用JToken
索引器,但与.SelectToken
方法相反,如果JSON不包含数据,它将抛出异常。点
键:
jo["data.dot"]["value"]