遍历一个树状的json 代码如下,主要功能是判断能否有个键值能否存在
public static bool HasFunction(JArray jsonArray, string functionValue) { if (jsonArray == null) return false; else { foreach (JObject items in jsonArray) { foreach (var item in items) { if (item.Key.ToString() == "functionKey" && item.Value.ToString() == functionValue) return true; else { if (item.Key.ToString() == "children") { JArray jar = JArray.Parse(item.Value.ToString()); HasFunction(jar, functionValue); } } } } } return false; }
问题来了。返回总是为false,总感觉这个return false的地方不对。
解决方案
40
那么
HasFunction(jar, functionValue);
这行改成
if( HasFunction(jar, functionValue))
return true;