我需要按照插入顺序存储键值对,所以我选择使用LinkedHashMap
而不是HashMap
。但我需要将LinkedHashMap
转换为JSON字符串,并在字符串中保留LinkedHashMap
中的顺序。
但目前我通过以下方式实现:
- 首先将
LinkedHashMap
转换为JSON。 然后将JSON转换为字符串。
import java.util.LinkedHashMap;
import java.util.Map;
import org.json.JSONObject;
public class cdf {
public static void main(String[] args) {
Map<String,String > myLinkedHashMap = new LinkedHashMap<String, String>();
myLinkedHashMap.put("1","first");
myLinkedHashMap.put("2","second");
myLinkedHashMap.put("3","third");
JSONObject json = new JSONObject(myLinkedHashMap);
System.out.println(json.toString());
}
}
输出结果如下:
{"3":"third","2":"second","1":"first"} .
但是我希望按照键的插入顺序排序,就像这样:
{"1":"first","2":"second","3":"third"}
当我将LinkedHashMap
转换为JSON时,它失去了顺序(显然JSON没有顺序的概念),因此字符串也是无序的。现在,我该如何生成一个顺序与LinkedHashMap
相同的JSON字符串?
order
,以便在接收和解析JSON后能够跟踪字符串顺序。 - Bruno Toffolo{}
- 但是它本来就没有编译成功。请更新问题,提供您已编译和运行的实际代码... - Jon Skeet