0

私はデータをハイチャートグラフに入れることに非常に苦労しています。

最終的には、eval(data) を使用する必要がありました。

これを行うより良い方法はありますか?

JSFiddle の例

$(function () {
    var test = "[[Date.UTC(2013, 4, 08), 45.95],[Date.UTC(2013, 5, 28), 19.95]]"; 
    $('#container').highcharts({
        chart: {
        },
        xAxis: {
            type: 'datetime'
        },

        series: [{
            data: eval(test)
        }]
    });
});

更新 1

私の実際の目的は、(以下に示すように) JSON オブジェクトを関数に渡し、必要な文字列を取得してシリーズ入力に渡すことです。

以下はまだ機能していません。

function showPriceChart(priceData) {

    var json = jQuery.parseJSON(priceData);
    var pricePrices = [ json.pricePrices ];

            // This works if I use eval below
            // var pricePrices = '['+json.pricePrices+']';


    /// Other chart config goes here

    series: [{
            name: 'Retailer Price',
            data: pricePrices
        }, {
            name: 'RRP',
            data: rrpPrices
        }]
    });
    }

以下は、print_r() を使用した php の JSON オブジェクトです。

{"pricePrices":"[Date.UTC(2013, 4, 8), 67],[Date.UTC(2013, 5, 28), 29]","salePrices":"[Date.UTC(2013, 4, 8), ],[Date.UTC(2013, 5, 28), ]","rrpPrices":"[Date.UTC(2013, 4, 8), 67],[Date.UTC(2013, 5, 28), 67]"}
4

2 に答える 2

0

あなたは本当に目標に近づいていました。以下が機能しています:

( http://jsfiddle.net/G6jrU/3/ )

$(function () {

    var test =[ [ Date.UTC(2013, 4, 08),  45.95 ], 
                [ Date.UTC(2013, 5, 28), 19.95  ]  ];


    $('#container').highcharts({
        chart: {
        },
        xAxis: {
            type: 'datetime'
        },

        series: [{ data : test }]

    });
});

Rq : 必要に応じて、JSON を使用してデータをシリアル化/非シリアル化できます。

于 2013-07-20T15:24:17.740 に答える