【发布时间】:2021-12-31 18:59:00
【问题描述】:
我正在尝试帮助现有项目中的 JSON 结构格式,目标是重命名一些子键而不是值。 JSON格式是这样的
{
"table-name": "Kiwi",
"created-on": "November 20, 2021",
"token": "lsUVozOB2TxhvMv",
"icons": "default",
"links": "default",
"extra": "default",
"mode": "Private",
"collaborators": [],
"columns": {
"Name": {
"type": "text",
"extra": ""
},
"Info": {
"type": "longtext",
"extra": ""
},
"Status": {
"type": "droplist",
"extra": {
"fr": "Pending",
"sc": "On-going",
"th": "Completed",
"fo": "Cancelled"
}
}
},
"data": [{
"Name": "Team Reports",
"Info": "Submitting marketing materials reports",
"Status": "Completed"
},
{
"Name": "Fabia HR",
"Info": "Brian asking for a report",
"Status": "Pending"
},
{
"Name": "Fabia",
"Info": "Meeting with CEO @cafe 9:00",
"Status": "Cancelled"
}
]
}
我们正在研究 columns 以将 Name 重命名为 Task 并仍然保留另一个。使用数组推送和切片键后,我得到0 作为键和“任务作为子键,如
"0":{
"Task":{
"type":"text",
"extra":""
},
代码如下所示。请在业余时间分享您的解决方案,提前谢谢您,非常感谢您的关注。这里总菜鸟???? PHP:
$file = file.json;
$jsn = file_get_contents($file);
$data = json_decode($jsn, true);
//get name data array
$sub_data = $data['columns']['Name'];
$new_rename = array(
"Task" => $sub_data;
);
array_push($data['columns'],$new_rename);
//now delete old "Name";
array_slice($data['columns'],'Name')
//save stuff
$jsn = json_encode($data);
file_put_contents($file,$jsn);
【问题讨论】:
-
如果您将 JSON 解析为 PHP 数据结构作为您的第一步,那么您的问题与“JSON 数据”无关,而只是在某个位置重命名一个或多个属性PHP 对象。而是询问这个问题(当然,在搜索如何做到这一点之后)。