当前位置: 首页 > 面试题库 >

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

爱茂勋
2023-03-14
问题内容

我试图用一些数据绘制(用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);
  • 请注意,2和1未加引号,因此,它们是整数,这一点很重要。

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

<script>
    var data = '<?php echo $data; ?>';
    var json = JSON.parse(data);
    console.log(json);
    console.log(json[0]);
</script>
  • 请注意,var data = …是单引号,因此您将php的回显捕获为字符串

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

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



 类似资料:
  • 问题内容: 我有一个像这样打印的数组 如果我得到这样的东西 为什么名称未编码(例如0、1、2、3等)?以及如何使它出现在json代码中?完整的代码如下 问题答案: 您可以通过设置 JSON_FORCE_OBJECT 选项来强制使用对象,尽管您要通过数字键传递数组: 然后,返回的值将是带有数字键的JSON对象: 但是,只有在确实需要对象时才应该这样做。

  • 有人知道一种方法(如果可能的话也可以使用lodash)通过对象键对对象数组进行分组,然后根据分组创建新的对象数组吗?例如,我有一个汽车对象数组: 我想制作一个由分组的新汽车对象数组:

  • 问题内容: 有谁知道(如果可能的话,也用破折号)通过对象键对对象数组进行分组然后根据分组创建新的对象数组的方法吗?例如,我有一系列汽车对象: 我想制作一组新的汽车对象,并按以下类别分组: 问题答案: 。简单,并允许在分组结构中的对象中进行一些重复。 但是,OP还要求删除重复的密钥。如果您想一路走下去: 产量: 如果您想使用Underscore.js进行此操作,请注意,其版本称为。

  • 问题内容: 我在PHP中有以下数组: 我想将其JSON编码为JSON数组,产生类似以下内容的字符串: 但是当我调用此数组时,得到以下信息: 这是一个对象而不是数组。 我怎样才能将我的数组编码为数组呢? 问题答案: 您正在观察此行为,因为您的数组不是顺序的-它具有键和,但没有键。 仅具有数字索引是不够的。仅当您的PHP数组是顺序的时,即如果其键为0、1、2、3,…时,才会将PHP数组编码为JSON数

  • 问题内容: 以下是我的数据框。我进行了一些转换以创建类别列,并删除了其所属的原始列。现在,我需要进行分组,以除去公母,并且可以通过总和来汇总。 这是我创建数据框时创建的索引 我假设我想删除索引,并创建日期和类别,然后对指标进行求和。如何在熊猫数据框中执行此操作? 在Ubuntu 12.04上,Python为2.7,熊猫为0.7.0。下面是我运行以下命令时遇到的错误 问题答案: 您可以在现有数据框上

  • 我有这两个数组,我需要按ID订购第二个数组,就像第一个数组一样 如何根据第一个值重新订购第二个?我尝试了这个想法,但只适用于简单数组:https://develike.com/en/articles/sorting-an-array-by-values-based-on-another-array-in-php 有序ID数组: 无序数组: