我面临着非常讨厌的问题,在android中我有一个这种类型的hashmap对象:
HashMap<String, ArrayList<String>> cart = null;
这是我的购物车对象,我把我的购物车项目放在Android设备版本4.4.2中,然后这个对象以这种格式正确发送到服务器:
{"6":["Veg Biryani","599.0","0.0","1"],"5":["Chiken Tanduri","599.0","0.0","2"]}
但是,在4.3之前的旧版本中,它只是以这种格式发送上述对象:
{"26":"[Test, 1465.0, 0.0, 2]","5":"[Chiken Tanduri, 599.0, 0.0, 3]"}
正如我们在第二种格式中看到的那样,hashmap对象值完全被编码为字符串,不应该是这种情况,
为了将此对象发送到服务器,我只是将其转换为JSONObject并将其字符串化为发送到服务器。
String.valueOf(new JSONObject(cart))
有人可以指点我,上面代码中的错误。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:2)
问题是Map的构造函数仅在API19之后存在,因此在此之前,地图将作为Object添加。
您需要迭代地图的每个元素以创建JSON。
您当然可以使用外部库,但您只需使用UtilClass进行转换即可。对于转换,有这个解决方案
答案 1 :(得分:0)
请尝试使用此代码 -
(new JSONObject(cart)).toString();