从PHP向Json附加数据

时间:2016-02-15 01:55:34

标签: php json

我想将{ "pname":"superman" , "pid":"4" }追加到obdatabase.json。但我的下面的尝试完全覆盖了json文件。 我该如何修改?

obdatabase.json

{ "pobject":[{ "pname":"Pikachu" , "pid":"1" },
{ "pname":"squirtle" , "pid":"2" },
{ "pname":"Justinbieber" , "pid":"3" }]}

add.php

<?php

$file="obdatabase.json";
$json = json_decode(file_get_contents($file),TRUE);

$json['pobject'] = array('pname'=>'Superman', 'pid'=>4);

file_put_contents('obdatabase.json', json_encode($json));

?>

2 个答案:

答案 0 :(得分:3)

在你的代码中,你写道:

$json['pobject'] = array('pname'=>'Superman', 'pid'=>4);

通过这种方式,您替换 $json['pobject']数组而不是添加值。

您必须使用以下语法:

$json['pobject'][] = array('pname'=>'Superman', 'pid'=>4);

然后,您可以使用以下内容覆盖旧文本文件:

file_put_contents( 'obdatabase.json', json_encode( $json ) );

编辑:

您已经已经问过这个问题here。对Stack Overflow采取行动的正确方法是:

  • 如果您不理解答案或答案与您的问题不符,请继续讨论先前的问题;
  • 如果问题已结束,请将答案标记为正确,然后然后提出新问题。

这是出于对那些花时间寻找解决方案并且不尊重未来访问者的用户的尊重,这些用户可以轻松理解问题是否有效答案。

答案 1 :(得分:0)

这个想法是你从文件中获取gthe json然后将其解析为php json_encode()