向 json 添加数据
Adding data to json
我正在制作 RESTful 网络服务,我想将数据添加到 JSON 文件。我现在收到错误和警告,但我无法弄清楚我遗漏了什么或做错了什么。
JSON 文件如下所示
{
"charts": {
"title": "Top 40",
"song": {
"id":"1",
"title": "Title",
"artist": "Name" ,
"genre": "Something",
"weeks": "4",
"highest_rating": "18",
"year": "2014",
"youtube": "link here"
}
}
}
我想在添加数据时得到这样的东西
{
"charts": {
"title": "Top 40",
"song": {
"id":"1",
"title": "Title",
"artist": "Name" ,
"genre": "Something",
"weeks": "4",
"highest_rating": "18",
"year": "2014",
"youtube": "link here"
}
{
"id":"2",
"title": "Title",
"artist": "Name" ,
"genre": "Something",
"weeks": "4",
"highest_rating": "18",
"year": "2014",
"youtube": "link here"
}
}
}
我使用的PHP代码是这样的
编辑添加了更多代码以更加完整
$file = file_get_contents("data.json");
$data = json_decode($file, true);
$data->charts->songs[] = array(
'id'=>$_POST["id"],
'title'=>$_POST["title"],
'artist'=>$_POST["artist"],
'genre'=>$_POST["genre"],
'week'=>$_POST["week"],
'highest_rating'=>$_POST["highest_rating"],
'year'=>$_POST["year"],
'youtube'=>$_POST["youtube"]
);
file_put_contents('data.json',json_encode($data));
尝试json_encode功能。 $data->charts[] = json_encode($_POST);
您正在尝试访问由 json_decode 生成的多维数组,就像它是一个对象一样。
替换此行
$data = json_decode($file, true);
有了这个
$data = json_decode($file, false);
如果您希望结果是对象而不是多维数组。
另一方面,如果您对 $data 是一个多维数组感到满意,那么可以像这样访问它
$data['charts']['songs'][] = array(
我正在制作 RESTful 网络服务,我想将数据添加到 JSON 文件。我现在收到错误和警告,但我无法弄清楚我遗漏了什么或做错了什么。
JSON 文件如下所示
{
"charts": {
"title": "Top 40",
"song": {
"id":"1",
"title": "Title",
"artist": "Name" ,
"genre": "Something",
"weeks": "4",
"highest_rating": "18",
"year": "2014",
"youtube": "link here"
}
}
}
我想在添加数据时得到这样的东西
{
"charts": {
"title": "Top 40",
"song": {
"id":"1",
"title": "Title",
"artist": "Name" ,
"genre": "Something",
"weeks": "4",
"highest_rating": "18",
"year": "2014",
"youtube": "link here"
}
{
"id":"2",
"title": "Title",
"artist": "Name" ,
"genre": "Something",
"weeks": "4",
"highest_rating": "18",
"year": "2014",
"youtube": "link here"
}
}
}
我使用的PHP代码是这样的
编辑添加了更多代码以更加完整
$file = file_get_contents("data.json");
$data = json_decode($file, true);
$data->charts->songs[] = array(
'id'=>$_POST["id"],
'title'=>$_POST["title"],
'artist'=>$_POST["artist"],
'genre'=>$_POST["genre"],
'week'=>$_POST["week"],
'highest_rating'=>$_POST["highest_rating"],
'year'=>$_POST["year"],
'youtube'=>$_POST["youtube"]
);
file_put_contents('data.json',json_encode($data));
尝试json_encode功能。 $data->charts[] = json_encode($_POST);
您正在尝试访问由 json_decode 生成的多维数组,就像它是一个对象一样。
替换此行
$data = json_decode($file, true);
有了这个
$data = json_decode($file, false);
如果您希望结果是对象而不是多维数组。
另一方面,如果您对 $data 是一个多维数组感到满意,那么可以像这样访问它
$data['charts']['songs'][] = array(