Php 我似乎无法将数据正确地输入JSON
您好,我花了相当多的时间试图让我的数据在JSON中显示为以下示例:Php 我似乎无法将数据正确地输入JSON,php,arrays,class,json,Php,Arrays,Class,Json,您好,我花了相当多的时间试图让我的数据在JSON中显示为以下示例: var json = { "id": "347_0", "name": "Nine Inch Nails", "children": [{ "id": "126510_1", "name": "Jerome Dillon", "data": { "band": "Nine Inch Nails", "relat
var json = {
"id": "347_0",
"name": "Nine Inch Nails",
"children": [{
"id": "126510_1",
"name": "Jerome Dillon",
"data": {
"band": "Nine Inch Nails",
"relation": "member of band"
},
"children": [{
"id": "52163_2",
"name": "Howlin' Maggie",
"data": {
"band": "Jerome Dillon",
"relation": "member of band"
},
"children": []
}, {
"id": "324134_3",
"name": "nearLY",
"data": {
"band": "Jerome Dillon",
"relation": "member of band"
},
"children": []
}]
}, {
"id": "173871_4",
"name": "Charlie Clouser",
"data": {
"band": "Nine Inch Nails",
"relation": "member of band"
},
"children": []
}, {
"id": "235952_5",
"name": "James Woolley",
"data": {
"band": "Nine Inch Nails",
"relation": "member of band"
},
"children": []
},
我正在使用json_encode函数,我知道如何将数据转换成json,但我似乎无法创建任何输出上述json格式的内容……例如,我使用以下代码:
foreach($relations as $rel){
$data[$id]["relationTo"] = $rel["name"];
$data[$id]["relation"] = $rel["relation"];
$id = $id + 1;
}
$id = 0;
foreach($relations as $rel){
$children[$id]["id"] = $id+1;
$children[$id]["name"] = $rel["sname"];
$children[$id]["data"] = $data[$id];
$id = $id + 1;
}
$relationsArray["id"] = 0;
$relationsArray["name"] = $rel["name"];
$relationsArray["children"] = $children;
$json_content = json_encode($relationsArray);
这就产生了:
"id":0,
"name":"Al",
"children":[
{
"id":1,
"name":"Brandon",
"data":{
"relationTo":"Albaraa",
"relation":"Friend"
},
"children":[
]
},
{
"id":2,
"name":"Shen",
"data":{
"relationTo":"Albaraa",
"relation":"Friend"
},
"children":[
]
},
{
"id":3,
"name":"Dan",
"data":{
"relationTo":"Albaraa",
"relation":"Professor"
},
"children":[
]
},
{
"id":4,
"name":"Bob",
"data":{
"relationTo":"Albaraa",
"relation":"Boss"
},
"children":[
]
},
{
"id":5,
"name":"Al",
"data":{
"relationTo":"Albaraa",
"relation":"God Father"
},
"children":[
]
},
{
"id":6,
"name":"Albaraa",
"data":{
"relationTo":"Shen",
"relation":"Friend"
},
"children":[
]
},
{
"id":7,
"name":"Brandon",
"data":{
"relationTo":"Shen",
"relation":"Friend"
},
"children":[
]
},
{
"id":8,
"name":"Dan",
"data":{
"relationTo":"Shen",
"relation":"Professor"
},
"children":[
]
},
{
"id":9,
"name":"Albaraa",
"data":{
"relationTo":"Al",
"relation":"God Son"
},
"children":[
]
},
{
"id":10,
"name":"Bob",
"data":{
"relationTo":"Al",
"relation":"Best Friends"
},
"children":[
]
}
]
}
等等…但是我不能得到你上面看到的孩子们的孩子们
任何帮助都会令人惊讶的谢谢
编辑:
在foreach循环之前为$children赋值之前,您没有声明$children。因此,像这样声明数组并将代码更改为
$children = array();
$id = 0;
foreach($relations as $rel){
$children[$id]["id"] = $id+1;
$children[$id]["name"] = $rel["sname"];
$children[$id]["data"] = $data[$id];
$id = $id + 1;
}
在第一个字符串中执行
json\u解码
。然后对其进行反向工程。然后,您将获得数组格式并相应地创建新数组。在发布的代码中,您从不分配$children[$id][“children”]
,因此它不应该出现在json中(它作为空数组存在)。发布所有操作$children
数组的代码。我通过创建一个类添加了另一个尝试的编辑。。。对于我的其他代码,我刚刚开始一个新的尝试,我不确定如何显示其他$children中的更多$children@itachi我正在尝试json_解码到目前为止,我似乎无法让这个函数工作,但我会继续工作,谢谢!实际上,我声明很抱歉,我没有在上面的代码中包含这一点,但我显示了我得到的输出,并且我能够将子项输入到第一个创建的id/名称中,但我无法获得下一组子项的子项,以此类推。。。
$children = array();
$id = 0;
foreach($relations as $rel){
$children[$id]["id"] = $id+1;
$children[$id]["name"] = $rel["sname"];
$children[$id]["data"] = $data[$id];
$id = $id + 1;
}