将 json 字符串转换为数组格式,可用于绘制数据图表
Convert json string to array format, that can be use to chart data
实际数据:
var x =" [{ name: 'Chintan test', data: [3, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0] },
{ name: 'Lara Black &White', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
{ name: 'kamlesh ', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name: 'Gopala lalalala', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] },
{ name: 'Saurin Test ', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }]";
如何转换,以便我可以得到以下结果:
var y = [{ name: 'Chintan test', data: [3, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0] },
{ name: 'Lara Black &White', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
{ name: 'kamlesh ', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name: 'Gopala lalalala', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] },
{ name: 'Saurin Test ', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }]
我做了什么:
尝试 1 :
y=x.substring(1,x.length-1); // not helpfull
尝试 2 :
y = JSON.parse(x); // SyntaxError: JSON.parse: expected property name or '}' at line 1 column 5 of the JSON data
该字符串不是有效的 JSON(您可以在此处检查它 http://jsonlint.com/),因此为了解析它,您首先需要将其转换为有效的 JSON。
要使其成为有效的JSON,属性名称应用双引号封装(名称:=>"名称:)字符串也是如此("钦坦测试"=>"钦坦测试")。您可以通过一些字符串替换来执行此操作:
var x =" [{ name: 'Chintan test', data: [3, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0] }, { name: 'Lara Black &White', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { name: 'kamlesh ', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name:'Gopala lalalala', data: [1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0] }, { name: 'Saurin Test ', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }]";
x = x.replace(/data:/g, '"data":'); //name attribute data to "data"
x = x.replace(/name:/g, '"name":'); //name attribute name to "name"
x = x.replace(/:'s*'(.+?)'/g, ':"$1"'); // :'string' to :"string"
var y = JSON.parse(x);
请注意,x 中的字符串不应包含新行。
jsfiddle 工作示例:http://jsfiddle.net/jx3opp8g/
这不是有效的 JSON,主要是因为 JSON 要求属性名称用引号括起来。 在属性名称周围添加引号后,看起来它应该是可解析的。
相关文章:
- 用于绘制工作流图的JavaScript框架
- 将字节转换为用于在HTML5画布上绘制的图像
- 如何在一个适用于HTML5的TeeChart中绘制堆叠和普通系列
- 用于绘制JS图表的简单库
- 用于在JavaScript中绘制流程图的绘图库
- 将 json 字符串转换为数组格式,可用于绘制数据图表
- ASP.NET 或Javascript库,用于在美国地图上以颜色绘制自定义零件
- 如何将可编辑的表数据保存到用于绘制表的 JSON
- HTML5:在通过 JavaScript 绘制后将透明度应用于 Canvas
- 用于在画布上绘制的 JavaScript 函数(从 aspx 页面调用)会导致错误
- 任何类似的库/类,用于绘制类似谷歌图表的图表
- 在Firefox中将SVG绘制到画布时出现InvalidStateError(适用于Chrome)
- 用于绘制花式图表的JavaScript框架
- 用于在图像上绘制矩形的javascript
- 构造的SVG不适用于绘制HTML的地方
- 可以't在javascript循环中增加php变量,用于在谷歌地图上绘制多边形
- 算法:用于将度数解析为x,y的函数,用于绘制SVG饼图
- 谷歌地图API的哪些组件用于生成绘制多个地址的地图
- 用于在浏览器中绘制图像的库
- 用于绘制多级树的Javascript库