【问题标题】:How to print JSON Object in java如何在java中打印JSON对象
【发布时间】:2016-08-29 09:17:52
【问题描述】:

我无法按顺序打印我的 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 输出-> {"callback_url":"callback\/url","created_at":"2015-09-1001: 50"}

但我需要这样:

JSON 输出-> {"created_at":"2015-09-1001: 50","callback_url":"callback\/url"}

【问题讨论】:

    标签: java jsonp


    【解决方案1】:

    你不能因为这个对象使用HashMap作为存储:

     public class JSONObject extends HashMap
    

    所以订单不会被保留。这是来自JSONObject的javadoc:

    JSON 对象。键值对是无序的。

    为了按照自己的方式行事,您需要将输入键存储在ArrayList 或类似的位置,然后从JSONObject 中获取该列表中的每个值。

    【讨论】:

      【解决方案2】:

      JSONObject 实现 java.util.Map 并在内部使用 HashMap 实现,因此无法按顺序打印对象,因为 HashMap 不保持顺序。

      但是,如果您想实现此功能,请尝试维护两个 JSONArray 对象,一个包含所有键值,另一个包含相应值的数组。 JSONArray 实现 java.util.List 并且能够保持顺序。

      【讨论】:

        猜你喜欢
        • 2021-11-30
        • 1970-01-01
        • 1970-01-01
        • 2019-05-08
        • 2017-09-30
        • 2015-11-03
        • 2015-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多