繁体   English   中英

从SQL Server读取JSON

[英]Reading JSON from SQL Server

我有一个带有多个子FOR JSON路径的SQL查询,最后有一个最终的FOR JSON路径。 形成的JSON相对较大。 但是,当我尝试从C#中读取JSON时,JSON不能正确显示。 下面的C#代码从SQL Server读取JSON

   var queryWithForJson = "EXEC TEST_SP";
        var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
        var cmd = new SqlCommand(queryWithForJson, conn);
        cmd.CommandTimeout = 0;
        conn.Open();
        var jsonResult = new StringBuilder();
        var reader = cmd.ExecuteReader();
        if (!reader.HasRows)
        {
            jsonResult.Append("[]");
        }
        else
        {
            while (reader.Read())
            {
                jsonResult.Append(reader.GetValue(0).ToString());
            }
        }
        reader.Close();


        System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\file.json");
        file.WriteLine(jsonResult.ToString());

创建的JSON文件以以下结尾:

"Det":[{"id":3700159,"address":"601   Union St  Seattle, WA 98

如您所见,JSON没有正确结束。 知道为什么会这样吗?

在文件上使用using语句。 我没有这样做时就复制了您的问题。

using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\file.json"))
{
    file.Write(jsonResult.ToString());
}   

在仔细研究了一下之后,如果刷新了StreamWriter,看起来您也会获得正确的结果。 您可以使用file.AutoFlush = true; 或与file.Flush(); 无论您选择完成此操作,还是真的应该在StreamWriter周围使用using语句,以确保正确处理它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM