Javascript 为什么json_编码的数据不显示

Javascript 为什么json_编码的数据不显示,javascript,php,chart.js,Javascript,Php,Chart.js,我添加了chartJS,效果很好,当我试图将我的json_编码的php数组添加到chartJS的数据字段时,我遇到了这个问题。我的问题是图表无法将我的数据添加到条形图中。看到图片了吗 这就是我使用print_r输出数据时json_编码的数组的样子 [{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"6"},{"todoCoin":"5"},{"todo

我添加了chartJS,效果很好,当我试图将我的json_编码的php数组添加到chartJS的数据字段时,我遇到了这个问题。我的问题是图表无法将我的数据添加到条形图中。看到图片了吗

这就是我使用print_r输出数据时json_编码的数组的样子

[{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"1"},{"todoCoin":"6"},{"todoCoin":"5"},{"todoCoin":"3"},{"todoCoin":"1"},{"todoCoin":"2"},{"todoCoin":"4"},{"todoCoin":"4"},{"todoCoin":"5"},{"todoCoin":"9"},{"todoCoin":"10"},{"todoCoin":"11"},{"todoCoin":"6"},{"todoCoin":"4"},{"todoCoin":"3"},{"todoCoin":"2"},{"todoCoin":"6"},{"todoCoin":"8"},{"todoCoin":"10"},{"todoCoin":"2"},{"todoCoin":"4"},{"todoCoin":"3"},{"todoCoin":"8"},{"todoCoin":"1"},{"todoCoin":"1"}] 这是我仅有的html

<div class="container">
    <canvas id="myChart"></canvas>
</div>

要从json数组输出数据,应使用
json\u decode
。假设
$data
是您声明json数组的内容:

<?php 
  $decoded_data = json_decode($data);
  foreach ($decoded_data->{'todoCoin'} as $todoCoin) {
    echo $todoCoin;
  }
?>

根据您发布的内容,我在您的问题中添加了一个片段(删除php,只保留数组)。如果这是错误的,您可以单击编辑并将其回滚到原始位置:)
数据
应该是一个数字数组。使用
json\u encode()
可以获得一个json对象。另外,todoCoin:“1”是字符串而不是数字。你的数据应该像
[1,4,5,…,6]
我试着把它解析成一个int,比如$data[]=(int)$row;但它仍然不起作用…
json_encode()
对您不起作用,您需要在数组中循环并回显用逗号分隔的值,或者您可以尝试
回显内爆(“,”,$data”)
如果我尝试foreach($data as$test){echo$test,“\n”}我会在第19行的/var/www/html/todo/chartTodo.php中得到通知:数组到字符串的转换将foreach添加到数据中时:[]它只会破坏所有代码:请尝试我发布编辑的更新答案,并让我知道它是如何进行的。我想你只是想保持你的价值观。
<script>
    var myChart = document.getElementById('myChart').getContext('2d');

    // Global Options
    Chart.defaults.global.defaultFontFamily = "Lato";
    Chart.defaults.global.defaultFontsize = 18;
    Chart.defaults.global.defaultFontColor = "#777";
    var test = 80;
    var massPopChart = new Chart(myChart, {
        type:'bar', // bar, horizontalBar, pie, doughnut, radar, polarArea
        data: {
            labels:['Färdiga todo', 'Tid nedlagt', 'Användare'],
            datasets: [{
                label:'Todo Score', 
                data:[
                    <?php echo json_encode($data);?>,
                    <?php echo json_encode($data);?>,
                    <?php echo json_encode($data);?>
                ], 
                backgroundColor:[
                    'rgba(128,128,0)',
                    'rgba(255,0,0)',
                    'rgba(0,0,255)'
                ],
                borderWidth: 1,
                borderColor: '#777',
                hoverBorderWidth: 3,
                hoverBorderColor: '#000'
            }]
        },
        options: {
            title: {
                display: true,
                text: 'Överblick på din todoScore',
                fontSize: 25,

            },
            legend:{
                position: "right"
            }
        }   
    });
</script>
<?php 
  $decoded_data = json_decode($data);
  foreach ($decoded_data->{'todoCoin'} as $todoCoin) {
    echo $todoCoin;
  }
?>
<?php 
  $decoded = json_decode($data); // decode your json 2d array
  $decoded_array = array(); // create new 1D array
  # break down the first array
  foreach ($decoded as $todoCoins) {
    # break down the second array
    foreach ($todoCoins as $todoCoin) {
      # append each value, ignoring the 'todoCoin' key, to the new 1d array
      array_push($decoded_array, $todoCoin);
    }
  }
  echo implode(", ", $decoded_array); // outputs 1,1,1,1,1,6,5,3,1, etc...
?>