我正在尝试将代码从我的PHP后端传递到google-chart JavaScript API。我已成功使用PHP的json_encode()
来传递数字和字符串数组。
对于简单的数据数组json_encode()
可以正常工作:
<?php $data = [['Series1', 'Series2'], [0, 1], [2, 3], [3, 4]]; />
<script>
var data = <?php echo(json_encode($data));?>;
</script>
但是,Google Charts API要求将行参数作为{花括号}中的对象传递。
这是我想要制作的JavaScript数组:
var data = [
['Genre', 'Fantasy & Sci Fi', 'Romance', 'Mystery/Crime', 'General',
'Western', 'Literature', { role: 'annotation' } ],
['2010', 10, 24, 20, 32, 18, 5, ''],
['2020', 16, 22, 23, 30, 16, 9, ''],
['2030', 28, 19, 29, 30, 12, 13, '']
];
问题是在PHP中生成{role: 'annotation'}
位。有什么建议吗?
答案 0 :(得分:3)
这应该可以解决问题:
$data = [['Series1', 'Series2', ['role'=>'annotation']], [0, 1], [2, 3], [3, 4]];
您可以通过创建新的stdClass
在php中创建对象,但是字典(key =&gt; value array)会以相同的方式转换为JSON(使用大括号)。这也可行:
$object = new stdClass();
$object->role = 'annotation';
$data = [['Series1', 'Series2', $object], [0, 1], [2, 3], [3, 4]];
答案 1 :(得分:0)
您可以在PHP中创建一个对象,json_encode将从中创建一个对象:
$myObj = new stdClass;
$myObj->role = "annotation";
然后&#39; json_encode($ myObj);&#39;将返回您想要的JSON对象。