【问题标题】:How to send stored data on a SQLite db in android to PHP webserver using HTTP in android如何使用 android 中的 HTTP 将存储在 android 中的 SQLite db 上的数据发送到 PHP 网络服务器
【发布时间】:2012-09-22 13:12:18
【问题描述】:

有什么方法可以提交存储在 android SQLite 数据库中的数据格式

------------------------------------------ ID PRODUCT_ID AMOUNT ------------------------------------------ 1 001 4 2 008 5 3 006 2

在 android 中使用 HTTP 到 PHP Web 服务器。我正在为特定交易维护一个本地数据库,在用户完成交易后,我想将这些数据提交到网络系统。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: php android http


    【解决方案1】:
    1. 将数据库的每一行转换为JSONObject,并将所有行存储到JSONArray

    2. 使用 jsonArray.toString() 将 JSONArray 转换为 json 字符串并生成 HTTP POST request。确保将 Content-Type 参数设置为 application/json

    3. 在服务器端,相应地处理请求并将其存储到数据库中。

    注意:如果您有大量数据,最好批量传输 JSON 对象。您可以在重建数据库时向请求添加参数以表示批次 ID。

    编辑:我假设您知道如何将光标提取到数据库中。

    您可以使用以下代码

    JSONObject jObject;
    JSONArray jArray = new JSONArray()
    
    while(cursor.moveToNext()) {
    
        jObject = new JSONObject();
        jObject.put("id", cursor.getInt("ID"));
        jObject.put("product_id", cursor.getString("PRODUCT_ID"));
        jObject.put("amount", cursor.getInt("AMOUNT"));
        jArray.put(jObject);
    
    }
    

    在构建 HTTP POST 请求时,执行jArray.toString() 以获取表示数组的 JSON 字符串。希望这会有所帮助。

    【讨论】:

    • 您能否提供一个示例代码,用于使用循环将数据库的每一行转换为 JSONObject。
    • 确保将它们放在 try/catch 块中,因为这些函数会抛出 JSONExceptions。
    • 让我试试,然后回来回复你。
    • 我没有使用游标,因为我已经从数据库中获取数据并存储在List<ShoppingCartEntity> list 中。我只是循环列表并在循环中使用您的概念。最后它对我有用。非常感谢,这是我在这里的第一个问题。
    • 没问题.. :-)。为了将来参考,当您可以直接使用光标时,不要将这些值存储在单独的列表中。您可能会遇到 OutOfMemory 错误。仅当您需要对这些项目进行快速处理时,才将它们放入列表(或者甚至更好的是普通数组)中。
    猜你喜欢
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2013-10-27
    • 1970-01-01
    相关资源
    最近更新 更多