當map的數據轉化爲json,因爲map是無序的,所以json輸出也是無順序的,
當咱們相比較兩個json是否相同,咱們須要忽略他們的順序進行比較,比較方法有以下:json
假設咱們map中有id,name,轉化爲json後有以下兩種可能:ui
String json1 = "{\"id\":1,\"name\":\"eric\"}"; String json2 = "{\"name\":\"eric\",\"id\":1}";
JsonParser parser = new JsonParser(); JsonObject obj = (JsonObject) parser.parse(json1); JsonParser parser1 = new JsonParser(); JsonObject obj1 = (JsonObject) parser1.parse(json2); System.out.println(obj.equals(obj1)); 運行結果:true
Gson gson = new GsonBuilder().create(); JsonElement e1 = gson.toJsonTree(json1); JsonElement e2 = gson.toJsonTree(json2); System.out.println(e1.equals(e2)); 運行結果:false
JsonElement e3 = new JsonPrimitive(json1); JsonElement e4 = new JsonPrimitive(json2); System.out.println(e3.equals(e4)); 運行結果:false
所以轉化爲jsonObject進行比較能夠知足咱們的要求code