将 ArrayList 转换为 JSONArray

2024-03-06

我在用ArrayList<HashMap<String,String>>存储我的购物车物品。但我需要将其转换为JSONArray将其发送到数据库。但是当我将它转换为JSONArray the JSONArray看起来像这样:

03-13 11:09:28.842: D/购物车之前(1339): [{image=2130837526, 类别=椅子,数量=1,价格=400,名称=椅子,prodId=34}, {图片=2130837566,类别=镜子,数量=1,价格=3000,名称=La 方达,prodId=35}]

03-13 11:09:28.842:转换为 JSONArray(1339) 后的 D/cart: [“{图片=2130837526,类别=椅子,数量=1,价格=400, 名称=椅子,prodId=34}","{image=2130837566,类别=镜子, 数量=1,价格=3000,名称=拉方达,prodId=35}"]

我认为这是错误的。相反,它应该转换为这样的内容:

cartitems=[{"name":"Chair","price":"1001","prodId":"2","category":"Chairs","image":"2130837519","Quantity":"1"},{"name":"Baxton Studio Club Chair","price":"4545","prodId":"5","category":"Chairs","image":"2130837521","Quantity":"1"}]

要转换为的代码JSONArray:

protected String doInBackground(String... args) {
    AddtoCart obj = (AddtoCart) getApplicationContext();
    JSONArray cart = new JSONArray(obj.getCart());
    HashMap<String, String> params = new HashMap<String, String>();
    params.put("username", username);
    params.put("email", email);
    params.put("payment", payment);
    params.put("address", useraddress);
    params.put("contact", contact);
    params.put("city", usercity);
    params.put("cartitems", cart.toString());
    Log.d("params", params.toString());

    JSONObject json = jParser.makeHttpRequest(url_all_products, "POST", params);
    try {
        success = json.getInt("success");
        message = json.getString("message");
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
}

班级举办ArrayList:

public class AddtoCart extends Application {
    private static final String TAG_QUANTITY = "Quantity";
    private static final String TAG_PRICE = "price";
    ArrayList<HashMap<String, String>> cart = new ArrayList<HashMap<String, String>>();

    public void setCart(ArrayList<HashMap<String, String>> data) {
        //cart = data;
        cart.addAll(data);
        Log.d("Items in the cart", String.valueOf(cart));
    }

    public ArrayList<HashMap<String, String>> getCart() {
        return cart;
    }

    public int getSize() {
        return cart.size();
    }

    public void updateCart(ArrayList<HashMap<String, String>> data) {
        cart = data;
        Log.d("UPDATED CART", String.valueOf(cart));
    }

    public void updateQuantity(int index, String quantity) {
        cart.get(index).put(TAG_QUANTITY,quantity);
    }
}

我发现这对我的项目很有帮助:

我的 ArrayList 中的对象

public class ListItem {
    private long _masterId;
    private String _name;
    private long _category;

    public ListItem(long masterId, String name, long category) {
        _masterId = masterId;
        _name = name;
        _category = category;
    }

    public JSONObject getJSONObject() {
        JSONObject obj = new JSONObject();
        try {
            obj.put("Id", _masterId);
            obj.put("Name", _name);
            obj.put("Category", _category);
        } catch (JSONException e) {
            trace("DefaultListItem.toString JSONException: "+e.getMessage());
        }
        return obj;
    }
}

实际换算:

ArrayList<ListItem> myCustomList = ArrayList<ListItem>();
JSONArray jsonArray = new JSONArray();
for (int i=0; i < myCustomList.size(); i++) {
        jsonArray.put(myCustomList.get(i).getJSONObject());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 ArrayList 转换为 JSONArray 的相关文章

随机推荐

  • 授权导入范围后是否可以浏览电子表格?

    我在谷歌驱动器上创建了几个电子表格 所以我是所有这些的所有者 我有一个电子表格 主 它作为主文件将数据导出到我与顾问团队共享的其他电子表格 活动报告 中 导出的数据使他们能够使用列表作为数据验证等 这有助于主文件分析他们的活动 无需清理数据
  • java中的数字格式

    如何在java中获取这些格式 Input 1223893 180703 80967 1461 700 Output 1 223 893 180 703 80 967 1 461 700 我总是会一一转换数字 这只是为了获得更多示例 你可以阅
  • 将 Dash 与 Websocket 结合使用

    使用 Dash 和 Websockets 构建实时仪表板的最佳方式是什么 我想在每次收到消息时更新图表 但我发现的唯一的事情是每 x 秒调用一次回调 如下例所示 import dash import dash core components
  • 下载 Google 网络历史记录的脚本

    如何编写脚本来下载 Google 网络历史记录 我知道关于 https www google com history https www google com history 供稿 https www google com history
  • Façade 是否利用了开闭原则?

    The 维基百科页面 http en wikipedia org wiki Open closed principle 截至今天2013 02 27 开闭原则说它是通过继承实现的 开闭原理这个名称有两种用途 这两种方法都使用继承来解决明显的
  • 创建iOS框架时未定义符号OBJC_CLASS_$

    我正在尝试构建一个 iOS 框架 为此 我使用了一些依赖项 并且单独构建框架项目时没有出现错误 当我在演示应用程序中使用 CocoaPods 安装时 出现以下错误Undefined symbol OBJC CLASS DFPRequest
  • 我需要对 Spacy NER 进行文本清理吗?

    我是新来的NER and Spacy 尝试找出需要进行哪些文本清理 如果有 看起来像我发现的一些例子修剪了前导和尾随空格 然后用开始 停止索引进行处理 我看到一个例子 那个人做了一堆清理工作 但他的准确性非常差 因为所有索引都搞乱了 澄清一
  • 如何将文本格式的时间戳转换为MS Excel的实际日期格式?

    文本中的时间戳为 Mon May 16 00 01 46 IST 2016 我应该如何将此字符串转换为 dd mm yyyy hh mm ss excel 时间格式 您将需要执行一系列字符串操作和日期时间函数 首先假设您的字符串位于 A1
  • 如何向 joint.js 元素添加 onclick 事件?

    我在 DAG 中有一个 joint js 元素 并且希望能够通过单击它来触发事件 我可以用 selector click 来做到这一点 但我想知道是否有一个 joint js 特定的处理方法 因为那样可能会更好 我认为 onclick 的候
  • 是否有可能使用 oAuth 制作 100% 基于浏览器的 javascript Twitter 客户端(根本没有后端)?

    是否有可能使用 oAuth 制作 100 基于浏览器的 javascript Twitter 客户端 根本没有后端 我不这么认为 您仍然需要一种安全的方式从 Twitter 获取访问密钥 并且您可能希望隐藏您的消费者密钥
  • 在生产中顺利重新部署 WAR?

    我想知道是否有一种 顺利的方式 将 Java WAR 重新部署到生产服务器 没有集群 没有 OSGi 我能想到的就是停止服务器 更新文件 重新启动服务器 我需要提前 10 分钟在网站上显示维护警告 你的方法是什么 首先 热部署并不总是有效
  • 在 WPF 中使用 MS ReportViewer

    我将通过将 ReportViewer 放置在 WindowsFormsHost 中来开始在 WPF 应用程序中使用 MS ReportViewer 这是正确的方法吗 设计报表的最佳方法是什么 因为您无法在设计时在 WindowsFormsH
  • Linux 中的内存区域标志:为什么需要 VM_WRITE 和 VM_MAYWRITE?

    Mel Gorman 的 Understanding the Linux Virtual Memory Manager 2007 年 这是本书章节链接 https www kernel org doc gorman html underst
  • 如何链接到标题并在 JavaScript 中单击链接时触发单击事件?

    我的页脚中有一堆链接 我想链接到页面上的不同标题并创建一个单击事件 以便关联的段落从display none to display block 换句话说 您会看到标题和带有链接的页脚 如演示 您单击页脚链接 屏幕应跳转到 链接到 关联的 h
  • 如何在 Azure Devops Pipeline 中使用 PowerShell 根据条件触发代理作业

    我有一个 PowerShell 如下所示 echo Hello World MyVariable Proceed echo MyVariable 我想做的事 If the 我的变量 is Proceed 只有并且只有那时 Agent Job
  • 在 Mediawiki 中上传时调整图像大小

    理想情况下 我在上传到 mediawiki 的所有图像上调整大小并设置 maxWidth 和 maxHeight 后 看完了文档 https www mediawiki org wiki Manual Image administratio
  • delphi WSDL 导入器有问题

    我正在导入第三方提供的 WSDL 但我对 delphi WSDL 导入器没有成功 当我导入 WSDL 时 delphi WSDL 导入器会隐藏 WSDL 文件中类的实现 WSDL 文件包含一些接受对象作为参数的函数 导入 WSDL 后 de
  • 无法将文本字符串传递到 jquery 函数中?

    我的 jquery 脚本出了什么问题 这是脚本 function debug message body append div message div debug show this debug message in the div 这是我得
  • 字符文字中尾随撇号有什么好处

    我正在编写自己的编程语言 并且现在正在重新考虑语法的许多方面 在许多大多数语言中让我困扰的是尾随撇号在字符文字中 Example带有尾部斜杠 n 没有尾部斜杠 n 为什么新语言 如 rust f e 继续使用尾随撇号 看到这些语言解决了我们
  • 将 ArrayList 转换为 JSONArray

    我在用ArrayList