2

与えられたmyDataは次のようにJSON変数です:

({0:{qID:"3", id:"1", shortText:"Leisure", OpiCount:"0"}, 
  1:{qID:"3", id:"2", shortText:"Business", OpiCount:"3"}, 
  2:{qID:"3", id:"3", shortText:"University visit", OpiCount:"1"}, length:3})

floatデータ配列に変換するには:

var data = [];
myData.each(function(i,v) {  
    data[i] = { label: v.shortText, data: v.OpiCount } ; 
})

上記のコードは、の空白のために壊れていv.shortTextます。どうすればこれを克服できますか?

4

4 に答える 4

1

#Janと#diEchoをありがとう、私は理解しました。

私の問題は、flotが数値データを必要とすることです。parseFloat(v.OpiCount)を追加するだけです

var data = [];
myData.each(function(i,v) {  
    data[i] = { label: v.shortText, data: parseFloat(v.OpiCount) } ; 
})

よろしく。

于 2012-10-22T04:58:09.700 に答える
0

画像処理のためにテキストを翻訳するときにこの問題が発生しました...サーバー側でbase_64エンコードを作成し、クライアント側でjavascriptBase64デコードを実行しました

于 2012-10-22T04:28:39.980 に答える
0

.eachメソッドはjQueryにあり、完璧に機能しています。試してみてください

var myData = ({0:{qID:"3", id:"1", shortText:"Leisure", OpiCount:"0"}, 
  1:{qID:"3", id:"2", shortText:"Business", OpiCount:"3"}, 
  2:{qID:"3", id:"3", shortText:"University visit", OpiCount:"1"}, length:3});
var data = [];
$.each(myData, function(i,v) {
    console.log(v);
    data[i] = { label: v.shortText, data: v.OpiCount } ; 

})
    console.log(data);
})
于 2012-10-22T04:39:36.050 に答える
0

まず、それは有効なJSONではありません。属性名には、「qID」:「3」のように引用符を付ける必要があります。また、角かっこは使用しないでください。丸括弧はJSONPで使用されます。

次の問題は、JSONがどのように保存されるかです。通常、jsonは文字列として転送されるため、送信前にシリアル化されてから、もう一方の端で解凍されます。したがって、それがどこから来ているのかを理解する必要があります。あなたが提供した「json」はハードコーディングされているように見えますが、ここで実行されているのを見ることができるjsonオブジェクトとして:

http://jsfiddle.net/VYGY5/

そのため、どこからどの形式で送信されているかを調べ、有効なJSONを確認する必要があります。文字列の場合は、jQuery.parseJSONなどを使用してJSON文字列をjavascriptオブジェクトに変換してから、flot配列に変換できます。それ以外の場合は、オブジェクトを使用してください。

次に、flot配列は配列の配列です。したがって、次のようになります。

[ [0,0], [0,2] ].

したがって、コードは次のようになります。

data[i] = [pointX, pointY];

flot形式に関連してここのドキュメントページを必ず読んでください。

https://github.com/flot/flot/blob/master/API.md

于 2012-10-22T05:02:36.280 に答える