PHP将JSON对象转换为字符串

时间:2013-07-04 16:05:55

标签: php json file

我正在制作一个测验脚本。我想要一个"老师"能够编辑问题。最初,我尝试使用mySQL但是有点困难,所以我决定切换到JSON文件。

在用PHP做了一些基本检查后,我编写了这段代码

$json = array();
for ($x=1; $x < $count + 1; $x++) { 
    $q_and_a = array(
        "Question" => $_POST["q".$x],
        "Answer" => $_POST["a".$x]
        );
    array_push($json, $q_and_a);    
}
$encoded_array = json_encode($json);
// Delete JSON file, create new one and push encoded array into file
$json_file = 'questions.json';
unlink($json_file);
$handle = fopen($json_file, 'w') or die('Cannot open file:  '.$json_file);
fwrite($handle, $json_string) or die('Internal Sever Error');

我收到内部服务器错误后,我意识到这是因为$json变量是一个数组;我需要将其转换为字符串,然后将其插入到文件中。我第一次使用serialize(),但只是在我的文件中插入了一些奇怪的东西。在将json数组移入文件之前,如何将其转换为字符串?

提前致谢

2 个答案:

答案 0 :(得分:1)

试试这段代码。它不使用JSON,但它仍然将数据保存到使用tab

拆分的文件中
<?php 
$count=10;//whatever you defined it to
$qa = "";
for ($x=1; $x < $count + 1; $x++) { 
    $qa .= $_POST["q".$x]."\t".$_POST["a".$x]."\n";   
}
$json_file = 'file.txt';
unlink($json_file);
file_put_contents($qa);
?>

<?php
//to retrieve q&a
$qas = file('file.txt',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
$qas = explode("\t",$qas);
foreach($qas as $question => $answer)
{
    //your code 

}
?>

答案 1 :(得分:0)

fwrite($ handle,$ encoded array)或die('Internal Server Error');