javascript浮点数据

javascript浮点数据,javascript,json,flot,Javascript,Json,Flot,给定的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}) 要转换为浮点数据数组,请执行以下操作: var data

给定的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})
要转换为浮点数据数组,请执行以下操作:

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

由于
v.shortText
中的空白,上述代码中断。如何克服这个问题?

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

方法在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);
})
谢谢你,简和迪乔,我想起来了

我的问题是flot需要数字数据。只需添加parseFloat(v.OpiCount)


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

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

因此,您需要确定它来自何处,采用何种格式,并确保JSON有效。如果是字符串,您可以使用类似jQuery.parseJSON的东西将JSON字符串转换为javascript对象,然后转换为flot数组。否则,只需使用对象即可

下一个flot数组是数组的数组。所以它应该是这样的:

[ [0,0], [0,2] ].
因此,您的代码应该是:

data[i] = [pointX, pointY];
确保您阅读了与flot格式相关的文档页面:


那些偏执的论断应该让JSON变得不可解析。除非您的意思是它是一个对象,而您遗漏了
新对象
部分。在
javascript
中没有
每个
方法。你在找
jQuery
我想弗洛特不在乎标签是否包含空格。API文档中的第一个示例具有标签“y=3”,其中包含空格。
data[i] = [pointX, pointY];