[英]How to print JSON Object in java
我无法以顺序方式打印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"}
因为该对象使用HashMap
作为存储,所以不能:
public class JSONObject extends HashMap
因此将不保留订单。 这是来自JSONObject
javadoc:
JSON对象。 键值对是无序的。
为了拥有自己的方式,您将需要在ArrayList
或类似的地方存储输入键,然后从JSONObject
获取该列表中的每个值。
JSONObject实现java.util.Map,并在内部使用HashMap实现,因此无法顺序打印对象,因为HashMap不能保持顺序。
但是,如果要实现此功能,请尝试维护两个JSONArray对象,一个包含所有键值,另一个包含其对应值的数组。 JSONArray实现java.util.List并能够维护顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.