Google Timeline图表报错:无法将数组解码为JSON问题咨询
解决Google Timeline图表“couldn't decode Array as JSON”报错
嘿,我一眼就揪出问题所在了!你遇到的这个解码错误,根源是**rows属性里混用了JavaScript语法和JSON格式**——Google Charts的cols和rows要求的是纯JSON数据,但你用了new Date()这种JS构造函数,JSON根本不认识这玩意儿,自然就解析失败了。
别担心,改起来很简单,给你两个靠谱的解决方案:
- 方案1:用日期数组格式(推荐)
Google Charts Timeline支持用[年, 月, 日, 时, 分, 秒]的数组表示日期(注意月份从0开始,和JS的Date规则一致),这是最适配Timeline的写法。 - 方案2:用ISO日期字符串
如果是完整日期,可以用类似"2024-05-20T12:00:00"的ISO格式,但你这里是仅表示当日时间的场景,数组格式更合适。
给你修正后的完整代码示例:
<google-chart type='timeline' options='{"title": "Timeline", "legend" : {"position" : "bottom", "alignment": "start"} }' cols='[{"label":"Question", "type":"string"}, {"label":"Number", "type":"string"}, {"label":"Start", "type":"date"}, {"label":"End", "type":"date"} ]' rows='[["Question1", "1", [0,0,0,12,0,0], [0,0,0,12,30,0]], ["Question2", "2", [0,0,0,12,30,0], [0,0,0,13,0,0]]]' ></google-chart>
顺便说一句:为啥其他图表没问题?有些Google Charts类型(比如折线图)对数据格式的容忍度更高,能自动兼容一些非标准写法,但Timeline对数据的规范性要求更严格,必须是标准JSON结构,所以才唯独它报错。
内容的提问来源于stack exchange,提问作者user3310115
相关产品推荐
相关产品推荐

