我在web服務中編寫了Post數據的代碼,它發送響應數據和代碼。我使用select查詢在sql中發佈相同的數據。我的情況是我需要檢查responsedata和sql數據是否相同。如何比較java中的Json響應數據和sql數據
Mysql.java
public ArrayList<DisputeSummaryarraylistobject> connectSqlconnectiondisputesummary() throws SQLException, ClassNotFoundException{
ArrayList<DisputeSummaryarraylistobject> DisputeSummaryarraylistobjectlist = new ArrayList<DisputeSummaryarraylistobject>();
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;user=UserName;password=*****";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
sqlConnection = DriverManager.getConnection(connectionUrl);
String sqlStatement = "Enter the sql statement";
stateMent = sqlConnection.createStatement();
resultSet = stateMent.executeQuery(sqlStatement);
DisputeSummaryarraylistobject disputeSummaryarraylistobject = new DisputeSummaryarraylistobject();
while (resultSet.next())
{
disputeSummaryarraylistobject.setchargeback(resultSet.getInt("chargeback"));
disputeSummaryarraylistobject.setactiveDisputes(resultSet.getInt("activeDisputes"));
disputeSummaryarraylistobject.setrecentUpdates(resultSet.getInt("recentUpdates"));
disputeSummaryarraylistobject.setrecentlyClosed(resultSet.getInt("recentlyClosed"));
disputeSummaryarraylistobject.setresponseRequired(resultSet.getInt("responseRequired"));
disputeSummaryarraylistobject.inProgress(resultSet.getInt("inProgress"));
disputeSummaryarraylistobject.setclosedInFavor(resultSet.getInt("closedInFavor"));
disputeSummaryarraylistobject.setclosedChargebacks(resultSet.getInt("closedChargebacks"));
DisputeSummaryarraylistobjectlist.add(disputeSummaryarraylistobject);
}
}
catch (Exception e) {
e.printStackTrace();
}
return DisputeSummaryarraylistobjectlist;
}
}
Myjsonresponse.java
public void convertResponseoutputtojsonobject() throws IOException, ParseException {
logger.info("convertResponseoutputtojsonobject() : BEGINs ");
JSONParser jsonParser = new JSONParser();
Object object = jsonParser.parse(response.toString());
JSONArray jsArray = (JSONArray) object;
Iterator<JSONObject> iterator = jsArray.iterator();
while (iterator.hasNext()) {
JSONObject jsonObj = iterator.next();
list.add(jsonObj);
}
logger.info(list.toString());
logger.info("convertResponseoutputtojsonobject() : ENDS ");
}
輸出:響應數據將與formart被存儲在list.tostring()
{
"chargeback": 5,
"activeDisputes": 12,
"recentUpdates": 10,
"recentlyClosed": 12,
"responseRequired": 8,
"inProgress": 4,
"closedInFavor": 4,
"closedChargebacks": 8
}
我需要c ompare list.tostring
值和sql值。任何人都可以提供解決方案如何比較?
我覺得讓你的手比較是容易出錯,無法讀取。我建議您使用GSON將JSON轉換爲java對象,並直接將一些ORM或JPA轉換爲DBRow爲Object,然後實現適當的equals()以比較它們... – vach
您的意思是您要比較生成的字符串通過此代碼生成一個字符串不同? –
想出一個能夠產生相同字符串(JSON)的SQL查詢會不會更容易? –