如何从数据库中的树数据结构创建一个json对象?

时间:2015-05-21 07:39:17

标签: python json flask sqlalchemy uinavigationbar

我正在使用具有以下型号的烧瓶:

class NewsCategory(db.Model):
    __tablename__ = 'news_category'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(64))
    parent_id = db.Column(db.Integer, db.ForeignKey('news_category.id'))
    children = db.relationship("NewsCategory")

我想从这个模型创建一个json对象,用于导航菜单。

我想以递归方式解析它并构建一个看起来像这样的分层JSON对象:

tree = [{"title": "Node 1", "id": "1"},
         {"title": "Folder 2", "id": "2", "folder": "true", "children": [
            {"title": "Node 2.1", "id": "3"},
            {"title": "Node 2.2", "id": "4"}
          ]}
        ]

1 个答案:

答案 0 :(得分:3)

我使用名为Flask-Restless的库来查询数据库并返回json。它可以与SQLAlchemy一起使用。

如果您不想集成此类内容,可以继承SQLAlchemy模型,并在其上运行to_json()方法。

import scala.collection.JavaConverters._ myScalaList.asJava

class NewsCategory(db.Model, JsonSerializer)

信用:Github Overholt project(Flask-Security的作者)