private JSONNode GetSharedJSON(IEnumerable <JSONArray> nodes) { var first = nodes.First(); var result = new JSONArray(); for (int key = 0; key < first.Count; key++) { var t = GetAllType(key, nodes); if (t == null) { continue; } if (t == 0) { result[key] = GetSharedJSON(nodes.Select(it => it[key])); } else if (t == 2) { result[key] = nodes.All(it => it[key] == first[key]) ? first[key] : new JSONDash(); } else if (t == 1) { result[key] = GetSharedJSON(nodes.Select(it => it[key].AsArray)); } else { result[key] = new JSONDash(); } } return(result); }
private JSONNode GetSharedJSON(IEnumerable <JSONNode> nodes) { var first = nodes.First(); var result = new JSONObject(); foreach (var key in first.Keys) { var t = GetAllType(key, nodes); if (t == null) { continue; } if (t == 0) { result[key] = GetSharedJSON(nodes.Select(it => it[key])); } else if (t == 2) { result[key] = nodes.All(it => it[key].Value == first[key].Value) ? first[key] : new JSONDash(); } else if (t == 1) { result[key] = GetSharedJSON(nodes.Select(it => it[key].AsArray)); } else { result[key] = new JSONDash(); } } return(result); }