1

MVCJsonResultを返すajaxメソッドがあります。このデータを使用して、サードパーティのコントロールデータソースにデータを入力します。サードパーティのコントロールは、データが文字列ではないことを期待しています(つまり、データが二重引用符で囲まれていない)。jquery ajax呼び出しで返されたデータに警告すると、二重引用符は表示されません。

[[10, 10], [15, 20], [20, 25], [32, 40], [43, 50], [55, 60], [60, 70], [70, 80], [90, 100]]

ただし、fidlerでデータを見ると、データが二重引用符で囲まれていることがわかります。

"[[10、10]、[15、20]、[20、25]、[32、40]、[43、50]、[55、60]、[60、70]、[70、80]、 [90、100]]」

サードパーティのコントロールがデータソースを正しく設定していません。これが原因であると確信しています(上記のデータをハードコーディングしてデータソースにデータを入力すると、正常に機能します)

4

4 に答える 4

7

eval()またはJSON.parse()を使用する必要があります

var array = eval("[[10, 10], [15, 20], [20, 25], [32, 40], [43, 50], [55, 60], [60, 70], [70, 80], [90, 100]]");

var array = JSON.parse("[[10, 10], [15, 20], [20, 25], [32, 40], [43, 50], [55, 60], [60, 70], [70, 80], [90, 100]]");
于 2012-09-19T17:29:50.120 に答える
2

サーバーから返されるJSONは文字列です。サーバーがJavascriptオブジェクトを送信することはできません。

コントロールにJavascriptオブジェクトが必要な場合は、文字列を解析する必要があります。$.parseJSON文字列を解析してそこからJavascriptオブジェクトを作成するために使用できます。さらに、文字列$.getJSONを取得したりオプションで指定daraType: 'json'したりするなどのメソッドを使用すると、コールバック関数が呼び出される@.ajax前に文字列が自動的に解析されます。success

于 2012-09-19T17:36:38.787 に答える
0

ajaxの代わりに$.getJSONを使用してデータを取得すると、文字列ではなくオブジェクトとして返されます。

$.getJSON('your/ajax/url', function(json){ ...your code here...});
于 2012-09-19T17:33:19.743 に答える
0

この形式を使用して、数値にfloatを追加します

$json[]=    array($row[0],(float)$row[1],(float)$row[2]);
于 2013-05-07T09:49:33.757 に答える