return 输出为空php,thinkphp5 返回json数据的方法---以及返回json为空的原因

thinkphp5 返回json数据为空的解决方法

1、用SoapUI来测试借口,Content-Type不是json,而是text/html;

2、自己的接口,最后的数据用了json_encode,也是不管用的;

3、用header来设置Content-Type也没有效果;

4、而改框架的配置default_return_type 为json,这也是不可取的,整站是网站需要返回的还是text/html;

综上情况,没有识破原理层面的问题根源,但是找到了一个解决办法:

在你这个接口方法里面的第一行单独写上以下这句:

Config::set(‘default_return_type‘, ‘json‘);

这样这个配置适用于这个方法,不会影响其他方法,而且返回的数据Content-Type是json 的。

返回json好像有三种方法

1.使用原生的php语句

echo json_encode()

2.有一些是这样说的,使用ajaxReturn函数返回

$arr[‘name‘]=$picname;

$arr[‘pic‘]=$pics;

$arr[‘size‘]=$size;

$this->ajaxReturn ($arr,‘JSON‘);

3.有的说tp返回的时候,使用json函数

echo json(XXXX)

到底应该使用哪个呢?

三者的区别

1.json()函数,和halt函数,dump函数,jsonp函数一样,都是助手函数,可以使用。

但是真正使用的时候,报出这种错误

Object of class think\response\Json could not be converted to string

可能是这种错误

后来发现是UTF-8的BOM头问题

搞的很费劲,还是用原生的写法吧

2.json_encode是原生的php,更容易上手。

3.ajaxReturn,这个就不明白了,好像用起来挺费劲

原文:https://www.cnblogs.com/cn-oldboy/p/13262184.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Think PHP中,可以通过设置框架的配置项`default_return_type`为`json`来实现返回JSON格式的数据。然而,这种配置方式并不可取,因为整个网站需要返回数据可能是`text/html`格式的。 另外,在使用PHP调用`json_decode`函数将字符串转换为JSON对象时,如果使用`[]`操作符来获取数据,可能会出现错误提示`Cannot use object of type stdClass as array`。这个错误通常是因为将JSON字符串转换为了PHP中的标准类对象(`stdClass`),而不是数组。 因此,为了在Think PHP返回JSON格式的数据,可以使用`json_encode`函数将数组或对象转换为JSON字符串,然后将其输出给客户端。这样可以确保返回数据是正确的JSON格式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [thinkphp5 返回json数据方法---以及返回json原因](https://blog.csdn.net/weixin_29025501/article/details/115722410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [PHP JSON出错:Cannot use object of type stdClass as array解决方法](https://download.csdn.net/download/weixin_38651661/13725700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值