Android如何按顺序编写json对象?

我有一个奇怪的问题。我正在将json文件写入外部存储。下面的代码用于创建json对象,然后将它们添加到json数组中

 JSONObject jsonObj = new JSONObject();

                jsonObj.put("slotid", "1a");
                jsonObj.put("updatetime", 1477650798);
                jsonObj.put("active", true);
                jsonObj.put("adurl", "httpAd");
                jsonObj.put("imgurl", "httpImg");
                jsonObj.put("hd", false);
                jsonObj.put("x", 0);
                jsonObj.put("y", 0);

                phoneArray.put(jsonObj);
                jsobObj.put("slots", phoneArray);

上面的代码适用于api 24,但是当我尝试为api 19运行相同的代码时,会发生以下输出

{
  "containers": [

  ],
  "slots": [
    {
      "slotid": "1a",
      "updatetime": 1477650798,
      "adurl": "httpAd",
      "active": true,
      "hd": false,
      "y": 0,
      "x": 0,
      "imgurl": "httpImg"
    },
    {
      "slotid": "1a",
      "updatetime": 1477650798,
      "adurl": "httpAd",
      "active": true,
      "hd": false,
      "y": 0,
      "x": 0,
      "imgurl": "httpImg"
    }
  ]
}

我的问题是为什么我的JSON对象没有按顺序写入?我成功在API 24上获得正确的输出,即

{
  "slots": [
    {
      "slotid": "1a",
      "updatetime": 1477650798,
      "active": true,
      "adurl": "httpAd",
      "imgurl": "httpImg",
      "hd": "false",
      "x": 0,
      "y": 0
    },
    {
      "slotid": "1a",
      "updatetime": 1477650798,
      "active": true,
      "adurl": "httpAd",
      "imgurl": "httpImg",
      "hd": "false",
      "x": 0,
      "y": 0
    }
  ],
  "containers": [

  ]
}

问题应该在哪里?