[英]JSON pretty-print without changing the order
我使用json-simple
並希望有漂亮的打印用於調試目的。
這是一個非常相關的SO問題: Java中的Pretty-Print JSON
然而,給定線程中的答案不僅修復了縮進,而且還使用鍵的字符串順序將項的順序更改為[a ... z]。
有沒有辦法在不改變JSONObject中項目順序的情況下修復縮進?
例:
JSONObject myJSon = new JSONObject();
myJSon.put("zzz", 1);
myJSon.put("aaa", 1);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println( gson.toJson(myJSon) );
輸出:
{
"aaa": 1,
"zzz": 1
}
期望的輸出:
{
"zzz": 1,
"aaa": 1
}
編輯:我正在使用:org.json.simple.JSONObject
org.json.simple.JSONObject
類擴展了java.util.HashMap
,這就是為什么在輸出中看到這個屬性的順序的原因。 setPrettyPrinting()
方法不會更改順序。 您可以從源代碼中刪除它,沒有任何更改。 如果要保留順序,可以使用java.util.LinkedHashMap
而不是org.json.simple.JSONObject
。
簡單的例子:
import java.util.LinkedHashMap;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonProgram {
public static void main(String[] args) throws Exception {
Map<String, Integer> myJSon = new LinkedHashMap<String, Integer>();
myJSon.put("zzz", 1);
myJSon.put("aaa", 1);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(myJSon));
}
}
號JSONObject
是一個HashMap
,沒有保持你的條目順序put
了進去。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.