如何将 postgres 数据库转换为 JSON 文件?

Posted

技术标签:

【中文标题】如何将 postgres 数据库转换为 JSON 文件?【英文标题】:How can I convert postgres database to JSON file? 【发布时间】:2019-09-09 07:39:25 【问题描述】:

我正在开发 Flutter 移动应用程序,它应该与我使用 laravel 开发的 Web 平台连接(连接),我想从 Postgres 动态生成 JSON 文件,我的意思是当我更新数据库中的任何内容时,它会也可以在移动设备中更新,我需要在移动应用程序中显示数据。 我按照本教程进行操作,我明白我必须将数据库或表转换为 json 文件。请问我该怎么做,这是我第一次使用Flutter和json。

https://www.youtube.com/watch?v=m7b7_Nq7XSs&list=PLK7ZDJTUghFAmRR4mueiai7zq1RJfMQ62&index=11&t=1s

【问题讨论】:

【参考方案1】:

如果您刚刚开始,请花点时间熟悉基础知识以及 Flutter 如何处理来自数据库的数据。

另外,您应该已经阅读并且了解的是JSON and serialization。

基于此,不建议您直接从数据库中检索 JSON。相反,JSON 序列化以一种或另一种方式在 Flutter 内部使用推荐的方法之一发生。

专门用于使用 PostgreSQL,似乎有一个decent tutorial。

请记住,您在此处实际要求的内容(“...数据库到 JSON 文件”)表明您确实需要 文件输出,即与您将要通过颤振提供的 API 完全相反。

当然可以查询 PostgreSQL 并获得 JSON 格式的结果,但这也意味着您将无法使用 Flutter 中的数据模型。

但是,如果您最终知道自己在做什么,这里有一种方法可以将任何 PostgreSQL 查询的结果直接作为 JSON 获取:

SELECT json_agg(t) FROM (
    SELECT ...whatever you can think of...
) AS t;

【讨论】:

【参考方案2】:

如果您使用大于 5 的 laravel 版本,您可以使用 API resources 创建 API 并连接到 PostgreSQL(https://laravel.com/docs/5.7/database)。使用 laravel API 资源创建 API 非常简单。然后在 Flutter 中,您只需请求使用 laravel 创建的端点。

【讨论】:

以上是关于如何将 postgres 数据库转换为 JSON 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PySpark 将 JSON 列类型写入 Postgres?

将 json 转换为嵌套的 postgres 复合类型

如何将 accdb 转换为 postgres 数据库

如何将 Postgres Hstore 数据类型转换为雪花对象或变体

如何在 Postgres 中选择一列 json 对象,以便返回的行是 json 数组?

如何将数据列转换为单列,其中每一行数据垂直堆叠在该列中(在 Postgres 中)?