轴#0的数据列不能是谷歌图表中的字符串错误类型

Ram*_*sad 4 json google-visualization

我尝试使用PHP在服务器端填充谷歌图表数据表.我正确地获得了JSON文件,但图表不显示在客户端应用程序中.我收到错误 - 轴#0的数据列不能是字符串类型.我的编码在这里.

从数据库中获取数据后,

$colarray=array(array("id"=>"","label"=>"userid","pattern"=>"","type"=>"number"),array("id"=>"","label"=>"name","pattern"=>"","type"=>"string"));

  $final=array();
    for($i=0;$i<$rows;$i++) 
    {
     $id[$i]=pg_fetch_result($res1,$i,'id');
     $name[$i]=pg_fetch_result($res1,$i,'name');
     $prefinal[$i]=array("c"=>array(array("v"=>$name[$i]),array("v"=>$name[$i])));
     array_push($final,$prefinal[$i]);
    }


    $table['cols']=$colarray;
    $table['rows']=$final;
    echo json_encode($table);
Run Code Online (Sandbox Code Playgroud)

我的输出Json:

{
  "cols":[
    {"id":"","label":"userid","pattern":"","type":"number"},
    {"id":"","label":"name","pattern":"","type":"string"}
   ],
  "rows":[
    {"c":[{"v":"101"},{"v":"Aircel"}]},
    {"c":[{"v":"102"},{"v":"Srini"}]},
    {"c":[{"v":"103"},{"v":"Tamil"}]},
    {"c":[{"v":"104"},{"v":"Thiyagu"}]},
    {"c":[{"v":"105"},{"v":"Vasan"}]},
    {"c":[{"v":"107"},{"v":"Senthil"}]},
    {"c":[{"v":"108"},{"v":"Sri"}]},
    {"c":[{"v":"109"},{"v":"Docomo"}]},
    {"c":[{"v":"106"},{"v":"Innodea"}]}
    ]
}
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Ber*_*ner 10

要扩展@ sajal的准确答案:更改代码的最后一行:

echo json_encode($table);
Run Code Online (Sandbox Code Playgroud)

至:

echo json_encode($table, JSON_NUMERIC_CHECK);
Run Code Online (Sandbox Code Playgroud)

这将告诉json_encode识别数字并禁止将它们用引号括起来(自PHP 5.3.3起可用). http://php.net/manual/en/json.constants.php#constant.json-numeric-check


saj*_*jal 6

您将userid的类型指定为number ...但是传递字符串..这会导致问题.

我只是因为相反的问题而浪费了30分钟......

您的输出json应如下所示: -

{
  "cols":[
    {"id":"","label":"userid","pattern":"","type":"number"},
    {"id":"","label":"name","pattern":"","type":"string"}
   ],
  "rows":[
    {"c":[{"v":101},{"v":"Aircel"}]},
    {"c":[{"v":102},{"v":"Srini"}]},
    {"c":[{"v":103},{"v":"Tamil"}]},
    {"c":[{"v":104},{"v":"Thiyagu"}]},
    {"c":[{"v":105},{"v":"Vasan"}]},
    {"c":[{"v":107},{"v":"Senthil"}]},
    {"c":[{"v":108},{"v":"Sri"}]},
    {"c":[{"v":109},{"v":"Docomo"}]},
    {"c":[{"v":106},{"v":"Innodea"}]}
    ]
}
Run Code Online (Sandbox Code Playgroud)