2

我正在构建一个从我的 MYSQL 数据库中获取数据的 iOS 应用程序,所以要做这样的事情我需要使用 JSON(我知道其他方法,但我需要专门使用 JSON)。问题是,我如何从我的 mysql 数据库中获取数据并将其写入 JSON 格式的文件(最好使用 PHP)。

任何链接、教程或源代码将不胜感激!

4

3 回答 3

5

将您的数据库行检索到一个数组中,并json_encode()使用适当的标头将输出写入输出缓冲区:

// Modify the fetch call for the MySQL API you're using:
// This is MySQLi...
$results = array();
while ($row = result->fetch_assoc()) {
  // All results onto a single array
  $results[] = $row;
}

// Supply header for JSON mime type
header("Content-type: application/json");
// Supply the Content-Disposition header if you want the browser
// to treat the file as a download and prompt to save it.
// Leave this out if that isn't what you want (I suspect it isn't)
header('Content-Disposition: attachment; filename="file.json"');
// Depending on how you want the JSON to look, you may wish to use
// JSON_FORCE_OBJECT
echo json_encode($results, JSON_FORCE_OBJECT);

从浏览器的角度来看,它正在接收一个 JSON 文件,尽管 PHP 正在为它提供服务。

如果您确实需要保存JSON 文件而不仅仅是输出它,请使用file_put_contents()

file_put_contents('file.json', json_encode($results, JSON_FORCE_OBJECT));
// Read it back out with 
echo file_get_contents('file.json');
// Or more simply 
file('file.json');
于 2012-05-20T21:52:38.927 回答
4

只需使用json_encode

... code that builds an array from any source you like
header('Content-type: application/json');
echo json_encode($anArray);
die;
于 2012-05-20T21:51:41.513 回答
1
  1. 从mysql获取数据并编码为jsonjson_encode()

  2. fopen()使用and写入文件fwrite()

于 2012-05-20T21:53:41.817 回答