duancashi1362 2014-02-01 00:01
浏览 110
已采纳

php json_encode到一个文件,格式问题

I am trying to create a json encoded file using php from the posted inputs

$name =$_POST['n'];
$age = $_POST['a'];
$occ= $_POST['n'];
$country = $_POST['n'];

$jsoninfo = array('name'=>$name,'age'=>$age,
                 'occupation'=>$occ,'country'=>$country);
$generated_json =  json_encode($jsoninfo);

echo $generated_json;

file_put_contents('somefile', $generated_json, FILE_APPEND );

When i recieve 10 requests to this php script a file is created as in the below format

{"name":"steve","age":"40","occupation":"ceo","country":"us"}
{"name":"steve","age":"40","occupation":"ceo","country":"us"}
{"name":"steve","age":"40","occupation":"ceo","country":"us"}
{"name":"steve","age":"40","occupation":"ceo","country":"us"}

Q1. When i tried to validate the above generated json text in http://jsonlint.com/

i get the Error message Expecting 'EOF', '}', ',', ']'

Q2. How do i achieve the below format

[
{"name":"steve","age":"40","occupation":"ceo","country":"us"},
{"name":"steve","age":"40","occupation":"ceo","country":"us"},
{"name":"steve","age":"40","occupation":"ceo","country":"us"},
{"name":"steve","age":"40","occupation":"ceo","country":"us"}
]

The comma , and also the ending ] box need to be appended for every new entry ?

  • 写回答

2条回答 默认 最新

  • duanpo2037 2014-02-01 00:05
    关注

    You need to read the file and decode it into an array, append to that array, and then write the whole array out.

    $name =$_POST['n'];
    $age = $_POST['a'];
    $occ= $_POST['n'];
    $country = $_POST['n'];
    
    $old_contents = file_get_contents('somefile');
    $jsoninfo = $old_contents ? json_decode($old_contents) : array();
    $jsoninfo[] = array('name'=>$name,'age'=>$age,
                        'occupation'=>$occ,'country'=>$country);
    $generated_json =  json_encode($jsoninfo);
    
    echo $generated_json;
    
    file_put_contents('somefile', $generated_json);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大