如何将日期值从JSON返回到Google可视化API

如何将日期值从JSON返回到Google可视化API,json,date,datatable,google-visualization,Json,Date,Datatable,Google Visualization,在Google可视化API中有没有从JSON中检索日期值的方法? 这是你的剪贴画,请把下面的代码复制到里面 运行代码时,不会产生任何结果。您应该删除我用注释标记的日期值中的引号,以便检索结果。 function drawVisualization() { var JSONObject = { cols: [ {id: 'header1', label: 'Header1', type: 'string'}, {id: 'header2', label: '

在Google可视化API中有没有从JSON中检索日期值的方法? 这是你的剪贴画,请把下面的代码复制到里面

运行代码时,不会产生任何结果。您应该删除我用注释标记的日期值中的引号,以便检索结果。

function drawVisualization() {
var JSONObject = {
cols:
    [
        {id: 'header1', label: 'Header1', type: 'string'},
        {id: 'header2', label: 'Header2', type: 'date'}
    ],
rows: 
    [
        {
            c:
                [
                    {v: 'Value1'}, 
                    {v: "new Date(2010, 3, 28)"}  // <= This is the format I receive from WebService
                ]
        },
        {
            c:
                [
                    {v: 'Value2'},
                    {v: new Date(2010, 3, 28)} // <=This is the format Google API accepts
                ]
        }
    ]
};

var data = new google.visualization.DataTable(JSONObject, 0.5);

visualization = new google.visualization.Table(document.getElementById('table'));
visualization.draw(data, {'allowHtml': true});
}
函数drawVisualization(){
var JSONObject={
科尔斯:
[
{id:'header1',label:'header1',type:'string'},
{id:'header2',标签:'header2',类型:'date'}
],
排:
[
{
c:
[
{v:'Value1'},

{v:“新日期(2010年3月28日)”}/我想这句话在你的代码片段“新日期(2010年3月28日)”
改为写“新日期(2010年3月28日)”

Json格式不接受javascript对象,因此服务器返回字符串。 JSON只知道数字、布尔常量、字符串、null、向量和“对象”(更像一个字典)

我想您必须对返回的字符串执行eval()(不要忘记检查输入)


另一种方法是使用正则表达式来提取字段,例如
/new Date\(\d+),(\d+),(\d+)/
将起作用。

我自己也遇到了这个问题,所以我想我应该从位于此处的google api文档中粘贴答案


“JSON不支持JavaScript日期值(例如,“new Date(2008,1,28,0,31,26)”;API实现支持。但是,API现在支持以字符串形式自定义有效的日期JSON表示,格式如下:日期(年、月、日[、小时、分钟、秒[、毫秒])“我遇到了同样的问题,上面的解决方案不起作用。在搜索了几个小时后,我找到了下面的帖子,里面的解决方案起了作用。”

不要在json字符串中包含“new”,这样它将只是:
v:“Date(2009,9,28)”

杜德,我也有同样的问题!我知道这是一个很老的问题,但我也有同样的问题,你可能会有所帮助。这是我的json
[“Date(2015,6,1)”,9218.0],“Date(2015,7,1)”,10497.5],“Date(2015,8,1)”,13317.5],“Date(2015,9,1)”,291572.0],“Date(2015,10,1)”,34480.0],“Date(2015,11.1)”,“Date(2016,0,1)”,34836.0],“日期(2016,1,1)”,29957.5],“日期(2016,2,1)”,21250.0],“日期(2016,3,1)”,2793.5],“日期(2016,10,1)”,3801.0],“日期(2016,11,1)”,2756.5],“日期(2017,1,1)”,2410.0],
我发现未捕获错误:类型不匹配。值日期(2015,6,1)与索引0列中的类型日期不匹配。eval()是解决方案之一。在阅读您的答案VGE之前,我发现迭代日期并创建一个新日期(data.row[I].c[0].v)(日期是第一个系列)。当然,我已将日期格式化为字符串,因此新日期()理解。很抱歉,Marcel,我以前没有看到你的评论。无论是评估还是处理整个数据都不是优雅的解决方案。@VGE感谢你的点评。这是一个简单的打字错误。我在问题上更新了它