php - Lumen 5.7 JSON 响应限制
问题描述
我在我的数据库中存储了一大段文本,并且可以成功地从我的DB
、dd()
它和log::debug()
内容中提取它而没有问题。文字可以在这里看到:https ://pastebin.com/KQNYW623
当我尝试返回文本的 JSON 响应时,问题就来了。在api.php
路由文件中安装干净的 Lumen 5.7 时,我有以下路由:
$router->get('/', function () use ($router) {
return json_encode("*insert large content here*"); //this is where the big text goes, I won't paste it fully here but it's here in my code as a string
});
如果我访问这条路线,我会得到一个空白页。在我的屏幕、Postman 或curl
. 错误日志中没有错误,什么都没有。只是空白。
如果我放置比大文本小得多的任何其他内容(例如 hello world),我在输出响应时没有问题。有人可以阐明这个问题的根本原因是什么吗?Lumen/Laravel 中的响应是否有字符限制?
- - 更新 - -
因此,如果我这样做echo response()->json($string)
(其中$string
)是一个保存长文本的变量)我可以看到字符串已被编码为 JSON,并且已添加响应标头,所有这些都输出到屏幕上。但是,doingreturn response()->json($string)
仍然继续返回空白响应。
有谁知道为什么return
不发回数据response()
?
解决方案
要返回像 laravel 这样的流明的 json 响应,我认为您可以查看:
https://lumen.laravel.com/docs/5.7/responses
json 方法会自动将 Content-Type 标头设置为 application/json,并使用 json_encode 将给定数组转换为 JSON
此外,如果您有一个与您的数据库关联的模型,您可以自动将您的 json 转换为数组,请参见:
如果您的数据库具有包含序列化 JSON 的 JSON 或 TEXT 字段类型,则将数组转换添加到该属性将自动将该属性反序列化为 PHP 数组
https://laravel.com/docs/5.7/eloquent-mutators#array-and-json-casting
推荐阅读
- javascript - 如何在数据表中添加新行并重新排序每行的索引?
- excel - 按顺序对 Excel 中的数据进行排序
- ios - 特定时间段的本地通知取消
- javascript - 如何使用 pug 迭代 json 数组?
- sql - 如何更新 JSONB 数组 Postgresql 数组对象中的多个值
- kubernetes - 具有基本身份验证的 Nginx-ingress Kubernetes 路由
- python - 随着执行的推进 + 意外的侧输入行为,数据流管道吞吐量急剧下降
- pdf - Prestashop 如何在单个 pdf 中导出多个发票选定的订单
- javascript - 单击另一个下拉菜单时如何关闭一个下拉菜单
- flutter - 如果子 GridView 没有固定高度,则不会调用 NotificationListener 的 onNotification