2

鉴于 myData 是 JSON var,如下所示:

({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 = [];
myData.each(function(i,v) {  
    data[i] = { label: v.shortText, data: v.OpiCount } ; 
})

上面的代码因为v.shortText. 我该如何克服呢?

4

4 回答 4

1

感谢#Jan 和#diEcho,我想通了。

我的问题是 float 需要数字数据。只需添加 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

首先,这不是有效的 JSON。属性名称应该有引号,例如“qID”:“3”。也不应该有任何括号。JSONP 中使用圆括号。

那么接下来的问题是 JSON 是如何存储的呢?通常 json 作为字符串传输,因此它在发送之前被序列化,然后在另一端解包。所以你需要弄清楚它的来源。您提供的“json”看起来像是硬编码的,但作为 json 对象,您可以在此处看到运行:

http://jsfiddle.net/VYGY5/

因此,您需要弄清楚它的来源和格式,并确保 JSON 有效。如果它是一个字符串,您可以使用 jQuery.parseJSON 之类的东西将 JSON 字符串转换为 javascript 对象,然后转换为浮点数组。否则,只需使用该对象。

接下来一个浮点数组是一个数组数组。所以它应该是这样的:

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

所以你的代码应该是:

data[i] = [pointX, pointY];

确保您阅读了与浮点格式相关的文档页面:

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

于 2012-10-22T05:02:36.280 回答
0

我在翻译文本以进行图像处理时遇到了这个问题...我所做的是在服务器端进行 base_64 编码并在客户端进行 javascript Base64解码

于 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 回答