コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }