You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP函数如何返回多个独立JSON对象?现有代码输出不符需求

解决方案

先直接给你能实现需求的代码,再讲背后的逻辑细节:

实现你要的多独立JSON对象格式

function renderJson(PageArray $items) {
    $individualJsonStrings = [];
    
    foreach($items as $item) {
        // 为每个条目单独创建结构并转成JSON字符串
        $singleItemJson = json_encode([
            'title' => [$item->title],
            'url' => [$item->url]
        ]);
        $individualJsonStrings[] = $singleItemJson;
    }
    
    // 用逗号把所有独立JSON对象拼接起来
    return implode(',', $individualJsonStrings);
}

改动说明

原来的代码是把所有条目的title和url分别收集到两个大数组里,最后生成一个包含这两个数组的单一JSON对象。现在我们遍历每个条目时,单独为它生成一个包含title(数组形式)和url(数组形式)的结构,转成JSON字符串后存起来,最后用逗号把这些字符串连在一起,就能得到你想要的{"title":["A"],"url":["A"]},{"title":["B"],"url":["B"]}这种输出。


更规范的替代方案(推荐)

要注意:上面的输出格式并不是标准JSON,很多JSON解析工具默认无法直接处理这种多个对象拼接的格式。如果你的消费端可以接受调整,更推荐输出标准的JSON数组(格式为[{"title":["A"],"url":["A"]},{"title":["B"],"url":["B"]}]),代码如下:

function renderJson(PageArray $items) {
    $jsonItems = [];
    
    foreach($items as $item) {
        $jsonItems[] = [
            'title' => [$item->title],
            'url' => [$item->url]
        ];
    }
    
    return json_encode($jsonItems);
}

这个版本完全符合JSON规范,任何标准JSON解析库都能直接解析成对象/数组列表,后续处理会更省心。


内容的提问来源于stack exchange,提问作者Squish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:16:10