gpt4 book ai didi

java - 在 Java 中订购一个新的 Gson().toJson()

转载 作者:行者123 更新时间:2023-12-02 04:46:18 25 4
gpt4 key购买 nike

此代码使用带有两个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com