首页 > 解决方案 > 如何检查 C# 的 json 对象中是否存在嵌套路径?

问题描述

假设想检查 json 对象中是否存在路径“L1.L2.L3”。有一种方法可以逐步检查级别(如何检查 json 对象是否具有某些属性),但我希望省去麻烦,而是检查路径。

标签: c#json

解决方案


您可以使用 newtonsoft.json 中的 SelectToken 方法(令牌为空,当没有找到匹配项时):

    string json = @"
{
    ""car"": {
        ""type"": {
            ""sedan"": {
                ""make"": ""honda"",
                ""model"": ""civics""
            }
        },                
    }
}";

    JObject obj = JObject.Parse(json);
    JToken token = obj.SelectToken("car.type.sedan.make",errorWhenNoMatch:false);
    Console.WriteLine(token.Path + " -> " + token?.ToString());

推荐阅读