簡體   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