1

まず、私の英語が下手で申し訳ありません。私は問題があります。ajax 呼び出しからハイチャートを作成する必要があります。

これは完璧に機能します:

chartOptions = { chart: {  renderTo: 'grafica1', type: 'area', },  series: [{ data: [1,2,3] }]};
chartprueba = new Highcharts.Chart(chartOptions);

私がやろうとしているのは、次のようなメッセージまたはjson応答を持つajaxです。

"chart: { renderTo: 'grafica1', type: 'area', }, series: [{ data: [1,2,3] }]}"

だから、jQueryがコードのように文字列のように解釈する方法が必要です...

これは私の例ですが、うまくいきません:

msg =  JSON.parse(msg);
chartOptions = msg;
chartprueba = new Highcharts.Chart(chartOptions);

chartOptions文字列はオブジェクトではないため...

4

3 に答える 3

3

この文字列

"chart: { renderTo: 'grafica1', type: 'area', }, series: [{ data: [1,2,3] }]}"

は有効な JSON ではありません。開き中括弧がなく、カンマがあり、キーが引用符で囲まれていません。これは有効な JavaScript オブジェクト定義でさえありませんが、json.orgJSON が課す追加の厳密性を確認してください。

編集:他の場所でのコメントに基づいて:

object ではなくJSON エンコードstringです。あなたが欲しいのは次のようなものです

$retorno = Array(
 chart => Array (renderTo =>'grafica1', type => 'area' ),
 series => Array(Array(data => Array(1,2,3)))
);
echo json_encode($retorno);

php(構文を正しく覚えていれば)。

于 2013-10-21T19:33:28.900 に答える
0

jQuery には という関数があり$.parseJSON、これはデータから作成されたオブジェクトを返します。

したがって、次のような JSON があれば、次のよう{'val1': 0} に実行できますvar data = $.parseJSON({'val1': 0});。これにより、オブジェクトを介して値を取得できるようになります。

例えば

data.val1

お役に立てれば、

‐ シド

ここにドキュメントへのリンクがあります

于 2013-10-21T19:31:30.010 に答える