TypeError:b不是对象 - jchartfx

时间:2014-02-03 13:42:07

标签: jquery jchartfx

运行时:

<script>
jQuery(document).ready(function($){ 

function PopulateProductSales(chart1) { 
        var items = '<?php echo $json ?>';
        chart1.setDataSource(items);
 }
});  
</script>

控制台返回:

TypeError: b is not an object

...null;if("string"==typeof b)return c==e?b:null;for(var d=Object.getPrototypeOf(b)... jchartfx.system.js

在控制台中。但是,如果我跑:

<script>

jQuery(document).ready(function($){ 

function PopulateProductSales(chart1) {

       var items = [{
            "Month": "Jan 2014",
            "Posts": 12,
        }, {
            "Month": "Feb 2013",
            "Posts": 10,
        }, {
            "Month": "Mar 2013",
            "Posts": 16,
        }, {
            "Month": "Apr 2013",
            "Posts": 7,
        }, {
            "Month": "May 2012",
            "Posts": 1,
        }];

        chart1.setDataSource(items);
}

});
</script>

我的图表/图表加载正常。此外,动态数据是有效的json,因为在控制台和http://jsonlint.com/中观察结果。

<script>
 var items = '<?php echo $json ?>';
 console.log(items);
</script>

OUPUTS:

[{"month":"May 2013","posts":2},{"month":"March 2013","posts":1}...]

到控制台。动态数据与静态完全相同!所有jchartfx库都正确加载,DOM解析好了 - 那么为什么软件不能用我的动态数据呢?

2 个答案:

答案 0 :(得分:1)

您的JSON已损坏,或者API正在等待Object中的实际{}

尝试使用http://jsonlint.com

答案 1 :(得分:0)

而不是

<script>
 var items = '<?php echo $json ?>';
</script>

使用:

<script>
 var items = <?php echo $json ?>;
</script>

所以,'分隔符'给了我这个问题。