【问题标题】:I am getting json data in a different format in codeigniter. Why?我在 codeigniter 中以不同格式获取 json 数据。为什么?
【发布时间】:2012-10-31 06:39:06
【问题描述】:

我正在尝试使用 codeigniter 制作和返回 json 数据。我想接收这种格式的数据

[
  {
     'title': 'this is title',
     'desc':  'THis is desc'
  },
   {
     'title': 'this is title',
     'desc':  'THis is desc'
  }
]

但我是这样接收的

[[{"title":"this is title","desc":"this is desc"}],[{"title":"this is title","description":"this is desc"}]]

如何将此格式更改为上述格式?

这是我的代码

public function v1 () {
    $this->load->model('model_jokes');

    $jokes = $this->model_jokes->readJokes();
    $arr = array();
    foreach ($jokes as $joke) {
        $arr[] = array(
                array(
                    'title' => $joke->title,
                    'description' => $joke->joke
                )
            );
    }
    echo json_encode($arr);
}

【问题讨论】:

标签: php json codeigniter


【解决方案1】:

foreach 中赋值为

$arr[] = array(
  'title' => $joke->title,
  'description' => $joke->joke
);

否则你会得到每个$joke的多维数组。

【讨论】:

    【解决方案2】:

    您每次都在循环中添加数组元素的数组。相反,只需添加单个数组。

    public function v1 () {
        $this->load->model('model_jokes');
    
        $jokes = $this->model_jokes->readJokes();
        $arr = array();
        foreach ($jokes as $joke) {
            $arr[] = array(
                        'title' => $joke->title,
                        'description' => $joke->joke
                );
        }
        echo json_encode($arr);
    }
    

    【讨论】:

      【解决方案3】:

      试试:

      echo '<pre>'.json_encode($arr).'</pre>';
      

      【讨论】:

        猜你喜欢
        • 2020-08-31
        • 1970-01-01
        • 2017-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多