[英]What is the right way to compare two JSON Strings using GSON?
使用GSON比較兩個JSON字符串的正確方法是什么?
boolean match = false;
String json2 = "some json string";
String json1 = "another json string";
JsonParser parser = new JsonParser();
JsonElement t2 = parser.parse(json2);
JsonElement t1 = parser.parse(json1);
match = t2.equals(t1); // compare two json strings
if (match) {
// do something
}
我上面的代碼是否適合兩個JSON比較?
您是否嘗試運行提供的示例代碼? 如果您使用2個相等的JSON字符串但重新排列鍵的順序,則會找到答案...
這是示例代碼:
String json1=" { \"name\" :\"ABC\",\"city\":\"XYZ\"}";
String json2=" { \"city\":\"XYZ\", \"name\" :\"ABC\"}";
JsonParser parser = new JsonParser();
JsonElement t2 = parser.parse(json2);
JsonElement t1 = parser.parse(json1); // returns true
您是說比較是真正的字符串到字符串還是內容到內容?
如果要在字符串之間進行比較,則應使用
int difference=aStr.compareTo(bStr);
如果要在內容之間進行比較,則應使用GSON將JSON轉換為POJO並在該POJO中實現equalsTo方法。
例如:
public class City implements Comparable<City>{
public String name;
public int population;
public int compareTo(City b){
return name.compareTo(b.name)+population-b.population;
}
}
Gson g=new Gson();
City a=g.fromJson(jsonA, City.class);
City b=g.fromJson(jsonB, City.class);
int difference=a.compareTo(b);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.