使用 php 为图库文件创建 json 数据文件


Creat json data file for gallery file with php

我知道这个问题已经被问了好几次了,我已经看到了答案,但它已经对我有很大帮助,但我需要解决另一个问题。所以问题是:我需要用 php 构建 json 文件。这是我需要的 json 文件的外观:

{
"fashion":[
{
        "alt":"Alisa",
        "src":"img/fashion/Alisa/kubik.jpg",
        "class":"albumItem",
        "id":"FashionAlbum001",
        "itemNum":0,
        "album":[
            {
                "alt":"albumImg1",
                "src":"img/fashion/Alisa/alisa1.jpg"
            },
            {
                "alt":"albumImg1",
                "src":"img/fashion/Alisa/alisa5.jpg"
            },
            {
                "alt":"albumImg1",
                "src":"img/fashion/Alisa/alisa7.jpg"
            }
        ]
    },
    {
        "alt":"2-Addis",
        "src":"img/fashion/2-Addis/kubik.jpg",
        "class":"albumItem",
        "id":"FashionAlbum002",
        "itemNum":1,
        "album":[
            {
                "alt":"albumImg1",
                "src":"img/fashion/2-Addis/addis1.jpg"
            },
            {
                "alt":"albumImg4",
                "src":"img/fashion/2-Addis/addis4.jpg"
            }] } ] }

等等...我找不到如何在每个相册中制作图像列表这是一个 php 函数 a 有

function buildJson(){
$json = json_encode(array(
     "Fashion" => array(
        "alt" => "Alisa",
        "src" => "img/fashion/Alisa/kubik.jpg",
        "id" => "FashionAlbum001",
        "itemNum"=>"1",
        "album"=>array(
            "src"=>"img/fashion/Alisa/alisa1.jpg",        
        ),
        array(
            "src"=>"img/fashion/Alisa/alisa5.jpg",        
        ),
        array(
            "src"=>"img/fashion/Alisa/alisa7.jpg",        
        ),
     )
));
echo $json;

}但我得到这样的 json:

{
"Fashion": {
    "0": {
        "src": "img/fashion/Alisa/alisa2.jpg"
    },
    "1": {
        "src": "img/fashion/Alisa/alisa3.jpg"
    },
    "alt": "Alisa",
    "src": "img/fashion/Alisa/kubik.jpg",
    "id": "FashionAlbum001",
    "itemNum": "0",
    "album": {
        "src": "img/fashion/Alisa/alisa1.jpg"
    }
}

}

怎么可能修复它?谢谢!

请多注意你正在编写的代码:)尝试解码 json 文件的正确版本,并将其与您编写的文件进行比较。您应该会看到一些差异。

您的问题是album键之后的内容。您正在为数组分配只有一个值,而不是为其分配数组数组。

这是要走的路:

"album" => array(
    array("src" => "img/fashion/Alisa/alisa1.jpg"),
    array("src" => "img/fashion/Alisa/alisa5.jpg"),
    array("src" => "img/fashion/Alisa/alisa7.jpg"),
),

嵌套专辑数组时遇到麻烦

固定代码

function buildJson(){
        $json = json_encode(
            array(
                 "Fashion" => array(
                     "alt" => "Alisa",
                     "src" => "img/fashion/Alisa/kubik.jpg",
                     "id" => "FashionAlbum001",
                     "itemNum"=>"1",
                     // nesting error here
                     "album"=> array(
                         array("src"=>"img/fashion/Alisa/alisa1.jpg"),
                         array("src"=>"img/fashion/Alisa/alisa5.jpg"),
                         array("src"=>"img/fashion/Alisa/alisa7.jpg")
                     )
                 )
            )
        );
        echo $json;
    }