将SortedMap从Java转换为Javascript中可读的排序对象

Converting a Sorted Map from Java to an sorted object readable in Javascript

本文关键字:排序 对象 Javascript SortedMap Java 转换      更新时间:2023-09-26

我有一个ConcurrentSkipListMap,它存储自epoch以来基于时间戳排序的数据。现在使用Servlet,我想将这些数据返回到浏览器。但是,当我将Java映射转换为JSON时,顺序会丢失(我知道JSON不会维护它)。我还试图向用户返回一个字符串,这是我在迭代地图时创建的

returnString = "{";
for (Map.Entry<Long, String> entry : mapname.entrySet()) {
    returnString += "'"" + String.valueOf(entry.getKey()) + "'":" + "'"" + entry.getValue() + "'",";
}
returnString += "}";

这个带有转义序列的字符串一直工作到我的getValue()是字符串。如果它原来是一个JSON对象,Javascript将无法解析整个对象,因为该值缺少转义序列。

我想向浏览器返回一种在JavaScript中易于阅读的格式,它不需要我在JavaScript中排序,因为我在Java中的Map已经排序了。这可能吗?怎样

附言:我可能错过了一些显而易见的东西,因为我已经花了几个小时的时间。

尝试GSON库。它将帮助你

GsonBuilder builder = new GsonBuilder();
        builder.setPrettyPrinting();
        builder.serializeNulls();
        Gson  gsonExt = builder.create();
        String serialize = gsonExt.toJson(mapname);