1

実際には非常に主観的な質問ですが、D3js ビジュアライゼーション用に Flare.json 出力を作成するためのいくつかのオプションを検討しようとしています。

現時点では、次のような D3js の JSON 構造があります。

{
    "name": "Engage Stats",
    "children":
    [
        {
            "name": "Unique Requests by Device",
            "children":
            [
                {"name": "Android", "size": 80},
                {"name": "IOS", "size": 366}
            ]
        },
        {
            "name": "Overall Requests by Device",
            "children":
            [
                {"name": "Android", "size": 2645},
                {"name": "IOS", "size": 11703}
            ]
        },

                .... etc etc

私のデータは、ストアド プロシージャを使用して MS-SQL から取得されています。明らかに 1 つの方法は、単純にデータセットを読み込んで (バックエンドで C#/.NET を使用していると言うべきでした)、JSON 構造を行ごとに構築することです。考え!

より多くのビジュアライゼーションにflare.json形式を使用しているため、ライブラリを作成して面倒な作業を行うことができると思います-繰り返しますが、これを達成するための他の視点に興味があります.

4

1 に答える 1

1

完全を期すために、そしてこの質問を締めくくるために、私は古き良き方法で行きました..私が推測している最高のものではありませんが、それは仕事をします!

using (SqlDataReader dr = command.ExecuteReader())
                        {
                            //  Check if we have data or not - no need to create the excel file if no data
                            if (!dr.HasRows)
                            {
                                JSONdata = null;
                                return false;
                            }

                            StringBuilder json = new StringBuilder();
                            string LastGroup = null;
                            bool Init = true;

                            json.AppendLine("{");

                            while (dr.Read())
                            {
                                if (Init)
                                {
                                    json.AppendLine("\"name\": \"" + dr["Organisation"] + "\",");
                                    json.AppendLine("\"children\": ");
                                    json.AppendLine("[");
                                }
                                if (LastGroup != dr["GroupIdentifier"].ToString())
                                {
                                    if (Init == true)
                                    {
                                        json.AppendLine("{");
                                        json.AppendLine("\"name\": \"" + dr["GroupIdentifier"] + "\",");
                                        json.AppendLine("\"children\":");
                                        json.AppendLine("[");
                                        Init = false;
                                    }
                                    else
                                    {
                                        var index = json.ToString().LastIndexOf(',');
                                        if (index >= 0)
                                        {
                                            json.Remove(index, 1);
                                        }
                                        json.AppendLine("]");
                                        json.AppendLine("},");
                                        json.AppendLine("{");
                                        json.AppendLine("\"name\": \"" + dr["GroupIdentifier"] + "\",");
                                        json.AppendLine("\"children\":");
                                        json.AppendLine("[");
                                    }
                                    LastGroup = dr["GroupIdentifier"].ToString();
                                }

                                json.AppendLine("{\"name\": \"" + dr["Measure"] + "\", \"size\": " + dr["MeasureValue"].ToString() + "},");
                            }

                            var index2 = json.ToString().LastIndexOf(',');
                            if (index2 >= 0)
                            {
                                json.Remove(index2, 1);
                            }
                            json.AppendLine("]");
                            json.AppendLine("}");

                            json.AppendLine("]");
                            json.AppendLine("}");

                            JSONdata = json.ToString();
                            return true;

                        } // end SqlRdr
于 2013-08-15T09:18:48.600 に答える