我在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查询会不会更容易? –