sql - 如何将 MySQL 数据库导出为 JSON?

我有兴趣将一部分值从 MySQL 数据库导出到磁盘上的 JSON 格式文件。

我找到了一个链接,其中讨论了一种可能的方法:http://www.thomasfrank.se/mysql_to_json.html

...但是当我使用该页面中的方法时,它似乎可以工作,但有两个问题:

1) 它只返回大约 15 个结果,最后一个被突然切断(不完整)。我的标准查询返回大约 4000 个结果,当我将它作为 SELECT name, email FROM students WHERE registered IS NULL 运行时 但是当我运行它时:

SELECT 
     CONCAT("[",
          GROUP_CONCAT(
               CONCAT("{name:'",name,"'"),
               CONCAT(",email:'",email,"'}")
          )
     ,"]") 
AS json FROM students WHERE enrolled IS NULL;

... 如链接中所述,它仅返回(如我所述)15 个结果。 (fwiw,我根据我应该得到的 4000 检查了这些结果,这 15 个与 4000 的前 15 个相同)

2) 当我将 INTO OUTFILE '/path/to/jsonoutput.txt' FIELDS TERMINATED BY ',' 添加到末尾时,实际文件中似乎包含“转义”字符那个查询。所以逗号最终看起来像 '\,' 显然我只想让逗号没有\。

关于如何从 MySQL 获取正确的 JSON 输出的任何想法? (使用这种方法,还是其他方法)?

谢谢!

最佳答案

如果你有 Ruby,你可以安装 mysql2xxxx gem(不是 mysql2json gem,它是一个不同的 gem):

$ gem install mysql2xxxx

然后运行命令

$ mysql2json --user=root --password=password --database=database_name --execute "select * from mytable" >mytable.json

gem 还提供 mysql2csvmysql2xml。它不如 mysqldump 快,但也没有 mysqldump 的一些怪异之处(比如只能从与 MySQL 服务器本身相同的计算机转储 CSV)

https://stackoverflow.com/questions/5036605/

相关文章:

ajax - 在 Chrome 中使用本地文件的 jQuery getJSON 问题

java - jackson - 将 java 列表写入 json 数组的最佳方法

javascript - bigint : 12000000000002539 is convert

java - 在 Java 中合并(Concat)多个 JSONObject

c++ - 用于 C++ 的最快 JSON 读取器/写入器

javascript - 用单引号将字符串解析为 JSON?

java - Spring REST多个@RequestBody参数,可能吗?

javascript - toJSON() 和 JSON.Stringify() 之间的区别

json - AngularJS 拦截所有 $http JSON 响应

python - 在 Django 模板中按键访问字典