如何处理jquery发送的数组,用PHP放入现有的嵌套json文件? 我可以使用jquery发送数据,但我可以管理的是php覆盖文件或将数据添加到文档的末尾,我需要将新数据放在json文件的嵌套结构中。
我的脚本看起来像这样;
<?php
$postdata = $_POST['data'];
$postdata = json_encode($postdata);
file_put_contents('json/user.json', $postdata);
?>
我的json有一个嵌套结构,如;
"{\"users\":
[{\"user\":
[{\"id\":\"martijn\",
\"pw\":\"password\",
\"name\":\"user3\",
\"icons\":
[{\"bookmarks\":\"bookmark3\",
\"notes\":\"note3\"
}]
}]
}]
}"
我想向用户添加另一个用户,我将如何使用php?
我的jQuery请求和要发送的数据;
var newUser = [{
user: [{
id: username,
pw: password,
name: "user3",
icons: [{
bookmarks: "bookmark3",
notes: "note3"
}]
}]
}];
var userSetup = JSON.stringify(newUser);
$.ajax({
url: themeUrl + '/script.php',
type: 'POST',
data: {
data: newUser,
},
dataType: 'json'
});
答案 0 :(得分:0)
这有点棘手,
你需要使用这些步骤才能做到这一点..
user.json
file_exists()
是否存在
file_get_contents()
json_decode()
并将其存储在数组中。$_POST['data']
并将其添加到之前的解码数组中。json_encode()
改为字符串。user.json
写入file_put_contents()
文件。 [不需要FILE_APPEND
旗帜] 编码部分......
<?php
if(file_exists('json/user.json'))
{
$cont = file_get_contents('json/user.json');
$usr_array = json_decode($cont,1);
foreach($_POST['data'] as $val)
{
$usr_array[]=$val;
}
$newData = json_encode($usr_array);
file_put_contents('json/user.json', $newData );
}
else
{
die('File does not exist !');
}