在USQL中创建JSON时,从JSON的值中删除无效字符



在USQL中,我正在阅读CSV文件。它是遥测数据,因此CSV文件可能具有任何不良数据。我正在阅读该CSV文件并在USQL中创建局限。我想从JSON对象的所有值中替换无效的字符,以使我的脚本不会因为不良数据而失败。我想生成JSON输出。

我正在考虑在创建JObject之前用空白替换"\""""。请让我知道这是否是删除不良数据的正确方法。如果有人有更好的解决方案,请告诉我。除了" "one_answers" "外,我还需要删除其他任何字符。我的USQL代码如下 -

@Data=
SELECT new JObject(
                        new JProperty("Name", Name),                                                  
                        new JProperty("Description", Description)                      
                   ).ToString() AS Document
FROM @InputData; 

这就是我的方式。这将构建您的数据表,然后使用JSON.NET,这将为您序列化,您只需要构建一个正则表达式即可找到并替换要删除的内容。

void Main()
{
    var dt = CSVtoDataTable(@"c:temptest.csv");
    foreach (DataRow row in dt.Rows)
    foreach (DataColumn col in dt.Columns)
    {
        var str = row[col].ToString();
        row[col] = RegexReplace(str);
    }
    string json = JsonConvert.SerializeObject(dt);
}
public DataTable CSVtoDataTable(string filepath)
{
    DataSet ds = new DataSet("Temp");
    using (OleDbConnection conn = new OleDbConnection($"Provider=Microsoft.Jet.OleDb.4.0; Data Source = {Path.GetDirectoryName(filepath)}; Extended Properties = "Text;HDR=YES;FMT=Delimited""))
    {
        conn.Open();
        OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM " + Path.GetFileName(filepath), conn);
        adapter.Fill(ds);
    }
    return ds.Tables[0];
}
public string RegexReplace(string s)
{
    return Regex.Replace(s, @"b[a-z]w+", "*****");
}

相关内容

  • 没有找到相关文章

最新更新