如何对php数组进行json_encode但键不带引号

我试图用一些数据绘制(用Flot)饼图

var data = <?php echo json_encode($data)?>

我从中得到的结果是:

var data = [

{"label":"Crear Usuario", "data":"2"},

{"label":"Impresoras", "data":"1"},

{"label":"Problema Correo", "data":"1"},

{"label":"Requisicion Equipo", "data":"1"},

{"label":"Sitio Web", "data":"1"}

]

这里的问题是我需要带引号label并且data没有引号,我已经尝试过了,json_encode($data,

JSON_NUMERIC_CHECK);但是只从数字中除去了引号。

以下是我需要的格式:

var data = [

{label:"Crear Usuario",data:2}, ...

回答:

首先,您必须在php中生成数组,以便数据的值是整数,而不是字符串:

我从json_encode()模拟了数组,我猜它看起来像这样(或应该这样):

$array =  array(

array("label" => "Crear Usuario", "data" => 2),

array("label" => "Impresoras", "data" => 1),

array("label" => "Problema Correo", "data" => 1),

array("label" => "Requisicion Equipo", "data" => 1),

array("label" => "Sitio Web", "data" => 1)

);

$data = json_encode($array);

然后,您在Javascript中错过了JSON.parse(),实际上将该输出转换为json对象:

<script>

var data = '<?php echo $data; ?>';

var json = JSON.parse(data);

console.log(json);

console.log(json[0]);

</script>

console.log()为我输出的是:

[Object, Object, Object, Object, Object] // First console.log(): one object with the 5 Objects. 

Object {label: "Crear Usuario", data: 2} // secons console log (json[0]) with the first object

看起来像您所需要的,对吗?

以上是 如何对php数组进行json_encode但键不带引号 的全部内容, 来源链接: utcz.com/qa/429395.html

回到顶部