我是PHP编程的新手,我试图用PHP到.json文件实现以下结构;
{
"1": {
"number": "4",
"color": "black"
},
"2": {
"number": "0",
"color": "green"
}
}
我想做的是,当我使用" add.php"发布数据时文件。它将更新.json文件,如下所示;
{
"1": {
"number": "4",
"color": "black"
},
"2": {
"number": "0",
"color": "green"
},
"3": {
"number": "12",
"color": "red"
}
}
"号码"和"颜色"将来自我使用jQuery从index.php发布的帖子;
$('#add_outcome').on('submit',function (e) {
e.preventDefault();
$.ajax({
url: 'add.php',
cache: false,
type: 'POST',
data : {
"number" : $('#add_outcome select').val(),
"color" : $('#add_outcome #color_info').val()
},
success: function(json) {
console.log("Done, data sent"); }
});
});
是否可以使用PHP更新此类结构?如果不能计算下一个" ID"在我的例子中是1,2,3等(通过提交增加)我可以从索引PHP发布数据。
现在最重要的是熟悉如何用PHP更新这种结构。
JSON数据来自文件,它的路径是" json / outcome.json"
答案 0 :(得分:1)
将此代码添加到add.php
文件
<?php
$json_array = json_decode(file_get_contents('json/outcome.json'), true);
$json_array[] = array('number' => $_POST['number'], 'color' => $_POST['color']);
file_put_contents('json/outcome.json', json_encode($json_array));
?>
答案 1 :(得分:0)
试试此代码
<?php
$file = json_decode(file_get_contents('path/to.json'), true);
//do whatever you want as $file is now an array
$file[] = array('number' => 12, 'color' => 'red');
file_put_contents('path/to.json', json_encode($file));