我在使用PHP函数json_decode解析我的JSON文件时遇到问题。 我目前只看到嵌套JSON数组中的最后一个对象(BANNER2)。我意识到我在JSON文件中使用重复键,但我对如何以不同方式构造JSON文件毫无头绪。
我的JSON文件:
{
"project_filename":"testzip",
"data":[
{
"title":"Quebec",
"displayTag":"H1",
"css":"",
"type":"header",
"display_title":"",
"data":[
{
"title":"BANNER1",
"displayTag":"h2",
"css":"hidden",
"type":"collapse",
"display_title":"",
"data":[
{
"title":"160x600",
"displayTag":"p",
"display_title":"DESCRIPTION",
"filename":"300x250",
"type":"banner",
"source":"pages/300x250/index.html",
"width":"300",
"height":"250",
"controls":true
}
],
"title":"BANNER2",
"displayTag":"h2",
"css":"hidden",
"type":"collapse",
"display_title":"",
"data":[
{
"title":"160x600",
"displayTag":"p",
"display_title":"DESCRIPTION",
"filename":"300x250",
"type":"banner",
"source":"pages/300x250/index.html",
"width":"300",
"height":"250",
"controls":true
}
]
}
]
}
]
}
我的PHP文件:
$JSONdata = json_decode($data, true);
foreach ($JSONdata['data'] as $key => $dt) {
foreach ($dt['data'] as $data) {
// use the JSON values in the $dt variable and do stuff with it
答案 0 :(得分:2)
两个横幅应该是数组中的单独对象,而不是单个对象中的重复键。对象键必须是唯一的。
{
"project_filename":"testzip",
"data":[
{
"title":"Quebec",
"displayTag":"H1",
"css":"",
"type":"header",
"display_title":"",
"data":[
{
"title":"BANNER1",
"displayTag":"h2",
"css":"hidden",
"type":"collapse",
"display_title":"",
"data":[
{
"title":"160x600",
"displayTag":"p",
"display_title":"DESCRIPTION",
"filename":"300x250",
"type":"banner",
"source":"pages/300x250/index.html",
"width":"300",
"height":"250",
"controls":true
}
]
},{
"title":"BANNER2",
"displayTag":"h2",
"css":"hidden",
"type":"collapse",
"display_title":"",
"data":[
{
"title":"160x600",
"displayTag":"p",
"display_title":"DESCRIPTION",
"filename":"300x250",
"type":"banner",
"source":"pages/300x250/index.html",
"width":"300",
"height":"250",
"controls":true
}
]
}
]
}
]
}