我使用 HashMaps 来存储对集,但我还必须确保从第一个 json 序列化(来自 Php 客户端)到 Java HashMap 集浏览,键的顺序是相同的
//import com.google.gson.Gson;
//import com.google.common.base.Joiner;
String s = "{\"durant\":\"kevin\", \"james\":\"lebron\",\"harden\":\"james\",\"westbrook\":\"russel\"}";
System.out.println(s);
Gson gson = new Gson();
Type typeOfMap = new TypeToken<Map<String, String>>() {}.getType();
Map<String, String> m = gson.fromJson(s, typeOfMap);
List<String> entries = new ArrayList< String>(m.keySet());
//Collections.sort(entries);
System.out.println(entries);
System.out.println(m.entrySet());
System.out.println( Joiner.on(",").withKeyValueSeparator("").join(m) );
它似乎适用于少量值,无需再次排序(这里按字母顺序排列),但这是一种可靠的方法吗?json字符串和地图浏览之间的顺序可以改变吗?
编辑:可能 LinkedHashMap 更能保留订单?