[英]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.