是否有任何基于列值隐藏单个JSON值的简单方法?

时间:2018-03-15 14:23:27

标签: c# json testing

我在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;
}

1 个答案:

答案 0 :(得分:0)

您可以使用某种变压器为您进行改造, 例如:

sample11.jpeg

然后您可以使用新数据表来序列化数据,而不是使用原始数据。