首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP json输出

CakePHP json输出
EN

Stack Overflow用户
提问于 2013-03-09 00:28:00
回答 2查看 10.2K关注 0票数 0

我试图在我的视图中以json的形式输出从我的控制器中获得的内容,但我认为我输出的内容很奇怪。

在web上我搜索json,结果如下所示:

代码语言:javascript
复制
{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}

然而,我的并没有格式化,看起来就像这样。

代码语言:javascript
复制
[{"Customer":{"id":"1","first_name":"Ian","last_name":"Smith","address_1":"10 High Streets","address_2":"","town_city":"Plymouth","county":"Devon","postcode":"PL1 2JD"}},{"Customer":{"id":"2","first_name":"David","last_name":"Smith","address_1":"52 Low Avenue","address_2":"","town_city":"Exeter","county":"Devon","postcode":"EX2 1KO"}}]

我如何输出它,使它看起来像第一个?

编辑

控制器

代码语言:javascript
复制
$user = $this->Customer->find( 'all' );
$this->set( 'users', $user );

视图

代码语言:javascript
复制
<?php echo json_encode($user); ?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-09 01:24:31

在输出步骤中美化你的json是没有意义的。如果这很重要,您可以使用外部工具来美化json。

另外,考虑在Cake中使用(JSON View)。简而言之,您设置了一个特殊视图变量,其中包含要jsonify的内容:

为了获得局部效果,请在包含要输出的数据的Router::parseExtensions()

  • specify变量中写入$this->set('_serialize', array('response')); (在json中,将有一个名为“”的根对象,其内容为
  1. 变量)。

使用这种方法,您将不需要创建视图文件-如果请求具有"Accept: application/ json“头,则会自动输出json。

票数 3
EN

Stack Overflow用户

发布于 2013-03-09 00:59:25

这些json响应中唯一的区别是,第一个是带有子对象的JSON对象,第二个是带有子对象的JSON对象数组。

下面的代码检索客户的所有记录。当您将其编码到json对象中时,它将被编码为Cutomers数组。

代码语言:javascript
复制
$this->Customer->find( 'all' ); 

您可以通过以下方式实现与第一个响应类似的响应

代码语言:javascript
复制
$this->Customer->find( 'first' );

上面的代码将只产生一个客户对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15298687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档