我无法按顺序打印我的json数据。我的代码如下:
import org.json.simple.JSONObject;
public class SendingJSONDATAinPost {
public static void main(String[] args) {
JSONObject shipmentObject = new JSONObject();
shipmentObject.put("created_at", "2015-09-1001: 50");
shipmentObject.put("callback_url","callback/url");
System.out.println("JSON OUTPUT->"+shipmentObject.toJSONString());
}
}
我的输出是:
JSON OUTPUT-> {"callback_url":"callback\/url","created_at":"2015-09-1001: 50"}
但我需要这样:
JSON OUTPUT-> {"created_at":"2015-09-1001: 50","callback_url":"callback\/url"}
答案 0 :(得分:0)
您不能,因为此对象使用true
作为存储:
HashMap
所以订单不会被保留。这是来自 public class JSONObject extends HashMap
的javadoc:
JSON对象。键值对是无序的。
为了按照自己的方式进行操作,您需要在JSONObject
或类似的地方存储某个输入键,然后从ArrayList
中取出该列表中的每个值。
答案 1 :(得分:0)
JSONObject实现了java.util.Map ,并在内部使用HashMap实现,因此无法按顺序打印对象,因为HashMap不能保持顺序。
但是,如果要实现此功能,请尝试维护两个 JSONArray 对象,一个包含所有键值,另一个包含相应的值。 JSONArray实现了java.util.List ,并且能够维护顺序排序。