Java 旧版本android中的JSON解码问题

Java 旧版本android中的JSON解码问题,java,android,json,Java,Android,Json,我面临着非常棘手的问题,在android中,我有一个这种类型的hashmap对象: HashMap<String, ArrayList<String>> cart = null; 但是,在4.3之前的旧版本中,它只是以这种格式发送上述对象: {"26":"[Test, 1465.0, 0.0, 2]","5":"[Chiken Tanduri, 599.0, 0.0, 3]"} 正如我们在第二种格式中看到的那样,hashmap对象值完全编码为字符串,,不应该是这种情

我面临着非常棘手的问题,在android中,我有一个这种类型的hashmap对象:

HashMap<String,  ArrayList<String>> cart = null;
但是,在4.3之前的旧版本中,它只是以这种格式发送上述对象:

{"26":"[Test, 1465.0, 0.0, 2]","5":"[Chiken Tanduri, 599.0, 0.0, 3]"}
正如我们在第二种格式中看到的那样,hashmap对象值完全编码为字符串,,不应该是这种情况

为了将这个对象发送到服务器,我只是将其强制转换为JSONObject并将其字符串化以发送到服务器

String.valueOf(new JSONObject(cart))
有人能告诉我,我在上面的代码中做错了什么

任何帮助都将不胜感激


谢谢大家!

试着用这个代替-

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

问题是Map的构造函数只存在于API19之后,因此在此之前,Map是作为对象添加的

您需要迭代映射的每个元素来创建JSON

当然,您可以使用外部库,但也可以简单地使用UtilClass进行转换。对于转换,有这样的解决方案


您使用的是哪个JSON库?您需要迭代地图,旧版本似乎无法管理地图,因此将其作为对象读取,因此所有内容都设置为字符串。
(new JSONObject(cart)).toString();