android - Flask REST API 使用 JSONArray 进行响应

标签 android python json rest flask

我使用 Flask 为 Android 应用程序创建了一个简单的 REST API。我在实现 GET 方法时遇到问题。它应该以 JSONArray 的形式返回所有记录。响应看起来像他的

{
    "tasks": [{
               "task" : "Do it",
               "timestamp": 1433510946152
              },{..}
             ],
    "success": 1
}

我的任务模型如下所示

class Task(db.Model):   
    id = db.Column(db.Integer, primary_key=True)
    task= db.Column(db.Text, nullable=False)
    timestamp = db.Column(db.Integer, nullable=False)

    @staticmethod
    def newest():
        return Task.query.order_by(desc(Task.timestamp))

    def to_json(self):
        return dict(id=self.id,
                    task= self.task,
                    timestamp = self.timestamp)

to_json() 方法将结果转换为 JSON。我只是不知道如何正确使用它。如何将所有记录放入 JSONArray 中?这是我获取所有任务的方法。我也在使用 Flask 分页,所以任务是一个分页对象。

def get_tasks():    

    page = request.args.get('page')
    if page is not None:
        try:
            page = int(request.args.get('page'))
        except:
            return jsonify({'result': 'Invalid parameter'})
    else:
        page = 1
    tasks= models.Task.newest().paginate(page, 7, True)

    #How do I return the tasks in an appropriate format?

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

只需循环您的任务,使用 to_json 将它们转换为 json 并将它们存储在数组中。例如:

def get_tasks():    

    page = request.args.get('page')
    if page is not None:
        try:
            page = int(request.args.get('page'))
        except:
            return jsonify({'result': 'Invalid parameter'})
    else:
        page = 1
    tasks= models.Task.newest().paginate(page, 7, True)
    # This list will hold all your tasks in JSON format
    jsontasks = []
    # Since tasks is a pagination object, you should use tasks.items
    for task in tasks.items:
        jsontasks.append(task.to_json())
    #How do I return the tasks in an appropriate format? Like this..
    return jsonify({'tasks': jsontasks, 'success': 1})

关于android - Flask REST API 使用 JSONArray 进行响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30667979/

相关文章:

android - 如何将标签添加到 android 堆栈跟踪?

android - 如何在 Android 上创建电子邮件按钮?

python - 在 matplotlib 中指定图形大小(以厘米为单位)

Python3.9 malloc : can't allocate region error 3

python - 在 Python 中创建不可变对象(immutable对象)

javascript - 无法使用 Highchart API 构建多级钻取图表

Android调试-Nexus 7-eclipse-mac下状态下线

android - Worklight Foundation V6.2.0 – 灵活的应用程序开发

ios - 如何将变量分离到其他文件并访问

php - 空列表 Android Studio