此代码使用带有两个 List<String>
的 Map
里面 Map<String, List<?>>
我需要按此顺序获得输出 ttPrm,ttDet,我得到的是 ttDet,ttPrm。
这是我的代码
String parametroGSON ="";
try {
Map<String, List<?>> mapa = new HashMap<String, List<?>>();
mapa.put("ttPrm", listParam);
mapa.put("ttDet", ListaArt);
parametroGSON = new Gson().toJson(mapa);
} catch (Exception e) { }
System.out.println(json);
输出:
{"ttDet":[{"dsArticulo":"PEPSI 500 X 12 PET"}],"ttPrm":[{"accion":"upd","cod_depo":"1"}]}
我需要这个输出
{"ttPrm":[{"accion":"upd","cod_depo":"1"}] ,"ttDet":[{"dsArticulo":"PEPSI 500 X 12 PET"}]}
我怎样才能得到这个输出?这个新的 Gson().toJson(mapa);这个顺序是按字母顺序排列的吗?我可以任意订购吗?
最佳答案
乍一看,这似乎是预期的输出。由于 String 类中的 hashCode 实现,ttDet 优先于 ttPrm,因为它的 hashCode 较小。
使用 LinkedHashMap 可能会有所帮助。尝试一下
String parametroGSON ="";
try {
Map<String, List<?>> mapa = new LinkedHashMap<String, List<?>>();
mapa.put("ttPrm", listParam);
mapa.put("ttDet", ListaArt);
parametroGSON = new Gson().toJson(mapa);
} catch (Exception e) { }
System.out.println(json);
相反。
根据具体要求,另一个映射可能有用,LinkedHashMap 会保留插入顺序(与 LinkedHashSet 相同)。
关于java - 在 Java 中订购一个新的 Gson().toJson(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29628933/