如何在PHP中附加JSON文件?

时间:2013-03-14 09:56:49

标签: php ajax json

<?php
if(file_exists("upload.json"))
{

// For GETTING Values as an Associative Array...
$temp_array = array();
$temp_array = json_decode(file_get_contents('upload.json'),true);

 $upload_info = array('media_name'=>'b', 
 'media_category'=>'v','media_info'=>'c','media_location'=>'x','media_artist'=>'z');

 array_push($temp_array, $upload_info);

 file_put_contents('upload.json', json_encode($upload_info));
 }
else
{
$upload_info =array('media_name'=>'b',
'media_category'=>'v','media_info'=>'c','media_location'=>'x','media_artist'=>'z');

$json = json_encode($upload_info);

$file = "upload.json";

file_put_contents($file, json_encode($json));

}
?>

我无法将JSON文件追加到一起: 有没有解决方案? 在此先感谢。

我希望JSON文件符合以下顺序。

{
  "upload":
    {
     "image":[
        {
         "media_name": "b",
         "media_category": "v",
         "media_info": "c",
         "media_location": "x",
          "media_artist": "z"
       },
       {
        "media_name": "b",
        "media_category": "v",
        "media_info": "c",
        "media_location": "x",
        "media_artist": "z"
       }
   ]
  }
}

我该怎么办?

2 个答案:

答案 0 :(得分:3)

<?php
if(file_exists("upload.json"))
{
    $temp_array = array();
    $temp_array = json_decode(file_get_contents('upload.json'));
    $upload_info = array('media_name'=>'b','media_category'=>'v','media_info'=>'c','media_location'=>'x','media_artist'=>'z');
    array_push($temp_array->upload->image, $upload_info);
    file_put_contents('upload.json', json_encode($temp_array));
}
else
{
    $upload_info = array();
    $upload_info['upload']['image'][] = array('media_name'=>'b','media_category'=>'v','media_info'=>'c','media_location'=>'x','media_artist'=>'z');
    $json = json_encode($upload_info);
    $file = "upload.json";
    file_put_contents($file, $json);
}
?>

这个适合你!

答案 1 :(得分:1)

试试这个:

$json_data = json_decode(file_get_contents('data.txt'), true);
for ($i = 0, $len = count($json_data); $i < $len; ++$i) {
    $json_data[$i]['num'] = (string) ($i + 1);
}
file_put_contents('data.txt', json_encode($json_data));

示例来自:Parsing JSON file with PHP