0

要件は、JSON を介してデータを取得し、グラフに渡すことです。データは次の形式である必要があります

var dataArray = [{データ:[]},{データ:[]}];

クライアント側で JSON データを取得するためのコードは次のようになります。

$.ajax({
                    type: "POST",
                    url: "Default.aspx/SendJsonUpadtes",
                    data: "{}",
                    contentType: "application/json",
                    dataType: "json",
                    success: function (msg) {
                        $("#Result").text(msg.d);
                        alert(msg.d);
                   }
                });

Asp.net サーバー側コード:

[WebMethod(EnableSession = false)]
    public static string SendJsonUpadtes()
    {
        return JSONFromCSV();

    }

    public static string JSONFromCSV()
    {
        //var reader = new StreamReader(File.OpenRead(@"D:\logs\data.csv"));
        var lines = File.ReadAllLines(@"D:\logs\electricity\data.csv");
        object[,] data = new object[lines.Count(), 2];
        int i = 0;
        string jsonStr = "[";
        lines.ToList().ForEach(line =>
        {
            jsonStr += "["+line+"]";
            i++;
            if (i < lines.Count())
                jsonStr += ",";
        });
        jsonStr += "]";
        return jsonStr;
    }

データは文字列形式で受信されます。

"[[10,20],[20,30],[30,40]]"

var dataArray = [{data:[]},{data:[]}]; にするために解析する必要があります。

JavascriptまたはJQueryを使用してどのように行うことができますか! 他に良いアイデアはありますか?

4

2 に答える 2

1

これを試して:

var dataArray = [];
$.each(msg.d, function(index, value) {
  dataArray.push({data : value});
});

デモはこちら

于 2013-04-03T12:21:54.470 に答える
0

関数mapを使用して、データ配列を変更できます。

var data = [[10,20],[20,30],[30,40]];

var dataArray = data.map(function(element) {
                            return { "data" : element }
                         });
于 2013-04-03T12:23:04.520 に答える