首页 游戏 软件 资讯 排行榜 专题
首页
编程语言
如何在 PHP 中正确生成嵌套数组格式的 JSON 响应

如何在 PHP 中正确生成嵌套数组格式的 JSON 响应

热心网友
99
转载
2026-05-05

如何在 PHP 中正确生成嵌套数组格式的 JSON 响应

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

本文讲解如何将逗号分隔的字符串(如 “tag1,tag2,tag3”)转换为 JSON 数组格式(如 “tgas”: [“tag1”, “tag2”, “tag3”]),并通过 json_encode() 输出符合预期结构的响应。

如何在 PHP 中正确生成嵌套数组格式的 JSON 响应

在 PHP 开发中,尤其是构建 API 接口时,确保 JSON 响应结构准确至关重要。你当前的代码将 $tagsoutput(例如值为 “tag1,tag2,tag3”)直接赋给 ‘tgas’ 键,导致 JSON 输出为 “tgas”: “tag1,tag2,tag3” —— 这是一个字符串,而非所需数组。

要得到 {“tgas”: [“tag1”, “tag2”, “tag3”]},关键在于:将原始字符串解析为 PHP 索引数组,再交由 json_encode() 序列化。PHP 提供了内置函数 explode() 完成这一转换:

 $title,
    ‘plot’      => strip_tags($description),
    ‘storline’  => strip_tags($storyline),
    ‘tgas’      => explode(‘,’, $tagsoutput) // ✅ 将字符串转为数组
);
$rt = json_encode($response, JSON_UNESCAPED_UNICODE); // 推荐使用 JSON_UNESCAPED_UNICODE 而非 true(后者非标准参数)

需要警惕的几个细节

代码写起来简单,但有几个坑很容易踩到。先说说最常见的:

  • 关于 json_encode 的参数:代码里 `json_encode($response, true)` 中的 `true` 其实是个无效选项。json_encode() 的第二个参数应该是一个位掩码常量,比如 `JSON_UNESCAPED_UNICODE`。传入 `true` 在 PHP 8 之前会被静默忽略,之后则可能引发警告。所以,务必使用标准的标志常量。
  • 处理脏数据:实际场景中,`$tagsoutput` 可能并不“干净”。比如它可能是空字符串,或者标签之间夹杂着空格(像 “tag1, tag2 , tag3”)。直接 `explode` 可能会生成 `[“tag1”, “”, “ tag2”]` 这样的结果,这显然不是我们想要的。这时候,就需要一点增强健壮性的处理:
    ‘tgas’ => array_map(‘trim’, array_filter(explode(‘,’, $tagsoutput), ‘strlen’))

    这行代码的作用是:先按逗号分割,然后过滤掉长度为0的空项,最后对每一项执行 `trim` 去除首尾空格。这样一来,输出就规整多了。

    立即学习“PHP免费学习笔记(深入)”;

  • 别忘了错误处理:json_encode 并非总能成功。如果数据里包含了非法的 UTF-8 字符,它就会失败。所以,一个健壮的做法是始终检查编码结果:
    $rt = json_encode($response, JSON_UNESCAPED_UNICODE);
    if ($rt === false) {
        error_log(‘JSON encode error: ’ . json_last_error_msg());
        http_response_code(500);
        exit(json_encode([‘error’ => ‘Invalid data’]));
    }

    这样一来,一旦编码出错,服务端能记录日志,并给客户端返回一个明确的错误信息,而不是一个空白或者截断的响应。

最终的成果

经过上述修正,你的代码将输出严格符合要求的、结构清晰的 JSON:

{
  “title”: “Post Title”,
  “plot”: “Cleaned description”,
  “storline”: “Cleaned storyline”,
  “tgas”: [“tag1”, “tag2”, “tag3”]
}

这样的响应,类型准确无误,前端 Ja vaScript 拿到后,就可以放心地使用 `response.tgas.forEach(…)` 进行遍历操作了。说到底,处理好这些细节,才是保证前后端顺畅协作的关键。

来源:https://www.php.cn/faq/2333122.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Sublime一键格式化JSON数据_Sublime安装PrettyJSON插件教程
编程语言
Sublime一键格式化JSON数据_Sublime安装PrettyJSON插件教程

Sublime一键格式化JSON数据:Pretty JSON插件配置全解 装好 Pretty JSON 插件,却发现它“罢工”了——默认不生效、中文变成 u4f60 u597d这样的编码、快捷键按了没反应。别急着怀疑插件有问题,真相往往是三个关键配置没对齐:语法类型、快捷键绑定,以及编码与缩进设置。

热心网友
05.04
如何在VSCode中一键格式化JSON字符串并进行美化
编程语言
如何在VSCode中一键格式化JSON字符串并进行美化

VSCode 默认不支持 JSON 字符串内联格式化 你是不是也遇到过这种情况?在代码里选中一段 JSON 字符串,满怀期待地按下 Shift+Alt+F,结果 VSCode 却弹出一个冷冰冰的提示:“没有可用的格式化程序”。这事儿其实不怪编辑器,它默认的 JSON 语言模式只认 json 后缀的

热心网友
05.03
VSCode安装EJSON预览 数据分析VSCode查看加密JSON
编程语言
VSCode安装EJSON预览 数据分析VSCode查看加密JSON

VS Code 原生不支持 EJSON 预览和加密 JSON 解密 先明确一个核心事实:VS Code 编辑器本身,并不具备直接预览 EJSON 或解密加密 JSON 的能力。很多开发者搜索“EJSON预览”或“查看加密JSON”,其实是将两个性质完全不同的问题混为一谈了。一个是关于 JSON 语法

热心网友
05.03
VSCode如何格式化JSON文件_VSCode JSON文件格式化技巧
编程语言
VSCode如何格式化JSON文件_VSCode JSON文件格式化技巧

VSCode格式化JSON文件无需插件,只需确保语言模式为JSON且语法合法,按Shift+Alt+F(Win Linux)或Shift+Option+F(macOS)即可生效;常见问题多因语言模式错误(如Plain Text)或语法不合法(单引号、注释、中文引号、零宽字符)导致。 其实,在VSCo

热心网友
05.03
Sublime如何一键格式化JSON?Sublime处理JSON数据的插件推荐
编程语言
Sublime如何一键格式化JSON?Sublime处理JSON数据的插件推荐

Sublime如何一键格式化JSON?Sublime处理JSON数据的插件推荐 装完Package Control才能用任何JSON格式化插件 很多朋友第一次在 Sublime Text 4 里想格式化 JSON 时,都会遇到一个尴尬的情况:按下 Ctrl+Shift+P,搜索 JSON Reind

热心网友
05.02

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

冬季防火标语
职业与学业
冬季防火标语

构筑消防安全“防火墙”工程 提升全社会火灾防控综合能力 消防安全绝非一句空洞的口号,它直接关系到千家万户的生命财产安全,是社会稳定与经济发展的坚实保障。全面提升社会火灾防控水平,是一项需要全民参与、持续发力的系统性工程。以下汇集自不同领域的防火警示与实用提醒,为我们提供了直观而深刻的行动指南。 森林

热心网友
05.05
防火宣传标语(80条)
职业与学业
防火宣传标语(80条)

防火宣传标语(1-20) 1 全民总动员,防火保安全。 2 全民护林、人人防火。 3 一人把关一处安,众人防火稳如山。 4 时时注意森林防火、人人重视森林防火。 5 森林防火记心上,人人护林理应当。 6 山田年年耕、防火天天讲。 7 保护消防设施,维护消防安全。 8 入山不带烟、野外

热心网友
05.05
森林防火标语手抄报图片文案
职业与学业
森林防火标语手抄报图片文案

森林防火标语手抄报图片文案 “坚持生态效益、经济效益、社会效益相结合,突出生态效益。”这句话点明了现代林业发展的核心。如今信息传播触手可及,我们每天都能接触到海量内容,其中那些简洁有力、直击人心的句子,往往最能留下深刻印象。你是否也有收集和分享精彩语句的习惯?下面整理的这份森林防火标语集锦,或许能为

热心网友
05.05
欧交易所最新版app下载安装地址2025版
web3.0
欧交易所最新版app下载安装地址2025版

欧交易所作为全球领先的数字资产服务平台,为广大用户提供多样化的数字产品交易与金融服务。其官方应用程序设计友好,操作便捷,致力于为用户创造一个安全、稳定的交易环境。 这份指南将手把手带你完成欧交易所2025最新版App的官方下载与安装。文内提供的链接直达官方渠道,确保你的每一步操作都安全可靠。 下载教

热心网友
05.05
森林防火标语大全图片文案34句
职业与学业
森林防火标语大全图片文案34句

森林防火标语大全图片文案【篇1】 一棵树木长成参天大树,需要历经数十年的风雨洗礼,成长过程极为不易。请务必牢记,切勿让任何火源进入林区,共同守护这片绿色。 我们关心天下大事,更应心系家园安全,用行动联通守护的责任。 清明祭祖,如今更倡导以鲜花、植树等文明、环保的方式寄托哀思,摒弃焚烧纸钱旧俗,让清明

热心网友
05.05