旧版Android中的JSON解码问题

时间:2016-05-26 11:06:15

标签: java android json

我面临着非常讨厌的问题,在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))

有人可以指点我,上面代码中的错误。

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:2)

问题是Map的构造函数仅在API19之后存在,因此在此之前,地图将作为Object添加。

您需要迭代地图的每个元素以创建JSON。

您当然可以使用外部库,但您只需使用UtilClass进行转换即可。对于转换,有这个解决方案

https://stackoverflow.com/a/22912023/4391450

答案 1 :(得分:0)

请尝试使用此代码 -

(new JSONObject(cart)).toString();