如何在JSONObject中保留LinkedHashMap排序?

时间:2016-05-25 06:52:42

标签: java jsonobject linkedhashmap

我有export ANDROID_HOME=/home/al/Downloads/android-sdk-linux/ export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools 状态。

LinkedHashMap

我正在基于它创建Map<String, String> stateMap = new LinkedHashMap<String, String>(); // ...

JSONObject

但是,条目显示无序。我想在JSONObject json = new JSONObject(); json.putAll(stateMap); 中保留LinkedHashMap的排序。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

JSONObject不同,JSONArray是一个有序的值序列。 因此,如果您想保留地图的顺序,可以使用两个键构建json对象:

  • 第一个密钥可以称为数据,并会保存您的stateMap数据,如下所示:

    json.element('data', stateMap)
    
  • 第二个键可以被称为,它将是一个JSONArray对象,它将保存地图键的有序列表,如下所示:

    JSONArray array = new JSONArray();
    array.addAll(stateMap.keySet())
    json.put('keys', array)
    

了解更多信息: