【问题标题】:How to insert nested json into SQLite Flutter如何将嵌套的 json 插入 SQLite Flutter
【发布时间】:2021-08-16 05:51:04
【问题描述】:

我想做一个分类屏幕,如果我没记错的话,后端返回一个嵌套的json,总共有4棵树,

示例:

当我按下类别中最通用的树时,我希望它显示为一个下拉列表,并在那里,把这个类别的孩子,清楚地放在 json 中,希望能很好地解释自己。

我必须用 json 中清楚显示的文本来填充这些小部件、它们的文本或标题,但我不会每次要绘制标题时都调用端点,我必须保存出现的内容在sqlite的json中,然后从那里提取文本以放在类别屏幕上......我该怎么做?我是新手,从来没有建立过这样的结构,我必须用 sqlite 来做,但我不知道如何开始或如何构建表格,如果我制作一个表格,只有类别的第一棵树会去吧,剩下的呢?嵌套json的孩子?有人可以指导我吗?

我给你留了一段 json(由于其他原因我不能把它完整)把它们放在上下文中更多一点

{
    "res": 0,
    "categorias": [
        {
            "id": 1,
            "name": "Bolsas",
            "img": "hogar.png",
            "titulo": 0,
            "children": [
                {
                    "id": 11,
                    "name": "Para llevar",
                    "img": "llevar.png",
                    "titulo": 0
                },
                {
                    "id": 12,
                    "name": "Para Conservar",
                    "img": "consrvar.png",
                    "titulo": 0
                },
                {
                    "id": 13,
                    "name": "Para Organizar",
                    "img": "organizar.png",
                    "titulo": 0
                },
                {
                    "id": 14,
                    "name": "Multipack",
                    "img": "multipack.png",
                    "titulo": 0
                }
            ]
        },
        {
            "id": 2,
            "name": "Cuidado del aire",
            "img": "aire.png",
            "titulo": 0,
            "children": [
                {
                    "id": 21,
                    "name": "Instantaneo",
                    "img": "instantaneo.png",
                    "titulo": 0,
                    "children": [
                        {
                            "id": 211,
                            "name": "Aerosol",
                            "img": "llevar.png",
                            "titulo": 0
                        },
                        {
                            "id": 212,
                            "name": "Toque",
                            "img": "consrvar.png",
                            "titulo": 0
                        }
                    ]
                },

【问题讨论】:

  • 你找到解决办法了吗?
  • @ArtemViter 我们所做的是将整个 json 保存为一个表中的字符串,该表在启动应用程序时仅调用一次,当单击最后一级类别时发送 WHAT 类别、子等,是单击后服务器会根据我们发送的类别进行过滤并带来产品,然后当我到达产品页面时,我已经收到来自服务器的响应,其中包含所有过滤产品的 json。
  • 这种方法是否类似于我在第 1 段中的回答?

标签: android json flutter sqlite nested


【解决方案1】:

您有多种使用 json 和 sqlite 的选项:

  1. 只需将您的 json 作为字符串放在表格中的行中,然后选择为字符串并转换为 json。
  2. 您可以通过使用sqlite's json extension 来使用第1 段中的类似方法。它增加了通过特殊查询语法选择 json 更新部分的可能性。要在此扩展程序中使用 sqlite,您需要自定义构建 sqlite,例如 sqlite-android(还有许多其他好处)。
  3. 您可以从每个级别的 json 嵌套中创建单独的 sqlite 表(取决于您对粒度的需要)。例如,您可以使用列(categorias_id、categorias_name、categorias_img、categorias_titulo)创建表categorias,使用列(categorias_id、id、name、img、titulo、categorias_childrens_id)创建表categorias_childrens。 在这种情况下,categorias_childrens 表中与 categorias.categorias_id 相关的所有行都在 categorias_childrens.categorias_id 列中包含 categorias.categorias_id。并且与categorias_childrens 某些行相关的所有行在 categorias_childrens.categorias_childrens_id 列中包含 categorias_childrens.categorias_id (当 children.id.21 有 childrens 时的情况)。

或者您可以结合以下方法,例如:创建表 categorias 与 columsn(categorias_id, categorias_name, categorias_img, categorias_titulo, children) 其中列子项将包含字符串 json 值。

【讨论】:

    猜你喜欢
    • 2021-02-23
    • 2022-08-19
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 2018-06-19
    • 2019-04-24
    • 2016-04-18
    • 1970-01-01
    相关资源
    最近更新 更多