如何在PHP中返回Json数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在PHP中返回Json数据相关的知识,希望对你有一定的参考价值。
这样对吗?
概述
不对。
返回json用的json_encode()方法没错,但是需要在头部声明格式。
代码解析
php返回需要用json_encode()方法来将需要转换的字符串转换成json编码格式(注意:仅仅更换文件内容,而返回的文件依然为文本格式且编码为gtk)
所以,这里需要在php头部声明
header('Content-Type:text/json;charset=utf-8');
拓展内容
json
JSON(javascript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json通常被作为配置文件,常见还有.ini
参考技术A 用json_encode()函数对数组进行JSON编码。<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echojson_encode($arr);
?>
以上例程会输出:
"a":1,"b":2,"c":3,"d":4,"e":5[1]
当有中文字符时,当直接使用json_encode() 函数会使汉字不能正常显示。 所以有了这个适用性比较广的函数 ch_json_encode() 来解决这个问题。 参考技术B 恩 就是使用json_encode();追问
但是ajax的function里面收不到啊,如何查看返回的数据
追答收不到可能是因为你返回的json格式被破坏了,最大的可能是BOM导致的,不要使用系统自带的记事本编辑utf8格式的php。
还有就是在json_encode()前面和后面不能有别的输出。
最好使用exit(json_encode($array))来输出。
如何使用 PHP/Laravel 返回 Json 数据数组?
【中文标题】如何使用 PHP/Laravel 返回 Json 数据数组?【英文标题】:How to return Json data array with PHP/Laravel? 【发布时间】:2021-12-02 08:26:31 【问题描述】:我正在使用 Laravel 开发一个 api,我必须在 url 中获取 json 文件的数据,这是我的代码:
public function index()
$json_file=file_get_contents("url that I'm using");
$json_str = json_decode($json_file);
echo $json_str;
JSON 文件:
"success":true,
"clients": [
[
"name": "Tyler Durden",
"job": "leader of the ..."
],
]
但是当我访问调用 index() 的路由时,我得到了这个错误:
Object of class stdClass could not be converted to string
我想获得任何一对客户并保存他们,有人可以帮助我吗?
【问题讨论】:
【参考方案1】:您不能使用echo
打印对象,要打印您可以使用的对象
print_r($json_str);
var_dump($json_str);
在你的情况下,你只需要一个return
声明
return $json_str;
在 Laravel 中你也可以这样做
return response()->json($json_str);
【讨论】:
“return $json_str”已经生效,但我现在如何打印“clients”值? 您可以通过return $json_str['clients'];
访问它们,如果您的意思是这样的话。
它不起作用,但我使用了return $json_str->clients[0];
并且为我服务【参考方案2】:
您正在尝试打印 json 而不是字符串。 echo 只会打印一个字符串。
【讨论】:
【参考方案3】:返回响应($json_str);或返回 response()->json($json_str);带状态码 return response()->json(['data'=>$json_str],200);
【讨论】:
谢谢,伙计。但是现在我正在尝试获取一对“客户”数据的值,有什么提示吗?以上是关于如何在PHP中返回Json数据的主要内容,如果未能解决你的问题,请参考以下文章