我想使用MySql数据库中的数据创建一个JSON文件。
我使用以下代码制作json文件。
<?php
$con = mysqli_connect('localhost','root','','mydb1');
$return_arr = array();
$sql = "select * from questions";
$res = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($res)){
$row_array['id'] = $row['id'];
$row_array['ques'] = $row['ques'];
$row_array['ans'] = $row['ans'];
array_push($return_arr,$row_array);
}
mysqli_close($con);
$b = json_encode($return_arr);
$f = fopen("test.json","w");
fwrite($f,$b);
fclose($f);
?>
它给了我以下输出:
[{"id":"1","ques":"New Delhi is capital of India?","ans":"1"},{"id":"2","ques":"India has 5 neighboring countries.","ans":"0"}]
但我想要我的结果:
{"questions" : {"question" : [{"id":"1","ques":"New Delhi is capital of India?","ans":"1"},{"id":"2","ques":"India has 5 neighboring countries.","ans":"0"}]}
这样我就可以在android中正确使用它。我可以这样做吗? 有人可以帮忙吗?
或者你可以帮我解决一下如何在不改变阵列的情况下在android中使用它。
提前致谢。
答案 0 :(得分:4)
这很简单,只需更改此行
即可$b = json_encode($return_arr);
到这一行
$b = json_encode(['questions' => ['questions' => $return_arr]]);
当您要保存为JSON文件时,如果要将其另存为键值对,则保存为数组ob对象,然后必须指定键。
如果你想要你的JSON漂亮输出,你也可以使用 JSON_PRETTY_PRINT
作为你的第二个参数
$b = json_encode(['questions' => $return_arr], JSON_PRETTY_PRINT);
见http://php.net/manual/en/function.json-encode.php#refsect1-function.json-encode-parameters