我在C#中开发了一些测试方法,在对各种记录进行UI更改后,验证数据库记录是否正确更新。
在这样做的过程中,我开发了一个返回SQL查询字符串的方法,然后将其序列化为JSON字符串。使用此字符串,我将其写入临时文件,然后将其与基线预期文件进行比较,然后验证更新是否正确。
问题是我从中获取的表非常广泛并且有很多列,其中一些列会因为创建日期,上次更新日期或任何类似的值而每次都会出现差异。
问题:
给出一个简单的JSON字符串(我的实际字符串要大得多):
[
{
"id": 1,
"name": "A green door",
"price": 12.50,
"home": "Penn"
"date": "April 4, 2015"
}
]
有没有简单的方法来掩盖所有"日期"具有任何指定值的值,然后导致返回看起来像:
[
{
"id": 1,
"name": "A green door",
"price": 12.50,
"home": "Penn"
"date": "MASKEDVALUE"
}
]
如果需要更多信息以供澄清,请告诉我。
序列化代码:
public string ReturnQueryAsJson(string statement)
{
var dataTable = new DataTable();
var configManager = new ConfigurationManager();
var connectionString = configManager.AppSettings["DatabaseConnectionString"];
string query = statement;
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(query, connection);
connection.Open();
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
dataAdapter.Fill(dataTable);
connection.Close();
dataAdapter.Dispose();
JsonConvert.SerializeObject(dataTable);
string JsonResult;
JsonResult = JsonConvert.SerializeObject(dataTable, Formatting.Indented);
return JsonResult;
}
答案 0 :(得分:0)
您可以使用某种变压器为您进行改造, 例如:
sample11.jpeg
然后您可以使用新数据表来序列化数据,而不是使用原始数据。