【问题标题】:how to json encode correctly in codeigniter如何在codeigniter中正确编码json
【发布时间】:2018-03-28 13:20:29
【问题描述】:

我想让输出看起来像这样

[{"0":"1.1","1":"KAS & BANK","2":"kosong"},
{"0":"1.1","1":"KAS & BANK","2":"kosong"},
{"0":"1.1","1":"KAS & BANK","2":"kosong"}]

但我真的搞砸了代码和输出 这是我的控制器

public function coa($id){ $data['listcoa'] = $this->easyway_model->getCoa($id); $this->load->view('perusahaan_coa', $data); }

这是我的模型

    public function getCoa($id) 
{
    $query = $this->db->select('*')
          ->from('tb_coa')
          ->where('id_perusahaan', $id)
          ->get();
    return $query;
}

在我看来我应该怎么称呼它?到目前为止,我正在使用这样的 foreach,但输出真的搞砸了

foreach($listcoa->result() as $list){
$cabang[] = $list->no_account;
$cabang[] = $list->deskripsi_coa;
$cabang[] = $list->tipe_akun;
$json = json_encode($cabang, JSON_FORCE_OBJECT); 
echo $json; }

这是我目前得到的输出

{"0":"1.1","1":"KAS & BANK","2":"kosong"}{"0":"1.1","1":"KAS & BANK","2":"kosong","3":"1.1.001","4":"KAS","5":"kosong"}{"0":"1.1","1":"KAS & BANK","2":"kosong","3":"1.1.001","4":"KAS","5":"kosong","6":"1.1.002","7":"MANDIRI","8":"kosong"}

没有逗号,数组的索引不断增加。

【问题讨论】:

  • “真的搞砸了”并没有给我们太多继续。含糊和/或基于意见的陈述在编程环境中几乎总是零使用。你得到了什么输出,而不是你想要的?请记住,我们不知道您在运行代码时使用了哪些数据,因此我们无法准确看到结果。
  • 另外,代码 sn-ps 也有点脱离上下文。什么是 $listcoa,它从何而来? $cabang 首先定义在哪里?最后一段代码和前面代码的联系不明显,看起来不完整。
  • 我更新了输出,我的 $listcoa 来自控制器中的数据。还有 cabang[],不知何故我真的很困惑,只是尝试创建一个数组并查看输出
  • 您现在产生的输出和您期望的输出均无效JSON。将所有数据放入一个数组中,只使用一次json_encode()将数组中存储的数据编码为JSON
  • 使用这个 $json = json_encode($cabang, JSON_FORCE_OBJECT);退出 foreach 循环

标签: php json codeigniter


【解决方案1】:

你首先需要移动

$json = json_encode($cabang, JSON_FORCE_OBJECT); 
echo $json;

在您的 foreach 循环之外。目前,每次循环运行时它都会执行该命令,因此您会多次输出 $cabang 数组,并且每次它都包含更多数据,因为添加了最新循环的结果。

如果您想要一个数组作为输出,您也可以删除 JSON_FORCE_OBJECT 设置,根据您的问题。并且你需要将 $cabang 做成一个多维数组。

$cabang = array();

foreach($listcoa->result() as $list){
  $item = array();
  $item[0] = $list->no_account;
  $item[1] = $list->deskripsi_coa;
  $item[2] = $list->tipe_akun;
  $cabang[] = $item;
}

$json = json_encode($cabang); 
echo $json;

【讨论】:

  • 哇,谢谢,非常感谢。它真的有效。我的另一个知识
猜你喜欢
  • 2021-03-28
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2021-05-20
  • 2018-09-15
相关资源
最近更新 更多