簡體   English   中英

解析JSON數據ASP.NET C#和Razor

[英]Parsing JSON data ASP.NET C# and Razor

嗨,我正在使用ASP.NET和razor在VS中工作,試圖用db表中的值填充表,但我必須將Json解碼或解析為簡單文本。 我真的很感謝您的幫助。 這就是我得到的。 在此處輸入圖片說明

  [HttpGet] public ActionResult GetData() { string stdb = "Data Source=DMX87025;Initial Catalog=DB_PCC;Integrated Security=True"; SqlConnection conn = new SqlConnection(stdb); string sql = "SELECT *FROM[DB_PCC].[dbo].[Departments]"; SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); SqlDataReader rd = cmd.ExecuteReader(); var st = "kyo please help me uu"; return Json(new { success = true, message = rd }, JsonRequestBehavior.AllowGet); } 
這是我的AJAX ...

 <div id="result"></div> <input type="button" name="name" value="try" onclick="DepListQuery()" /> <script> function DepListQuery() { $.ajax({ type: 'GET', url: '@Url.Action("GetData","Home")', contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { $('#result').text(response.message); }, failure: function (response) { alert("something get wrong uu"); } }); } </script> 

您需要解決的第一件事是如何從SqlDataReader讀取數據。 這是有關此操作的教程: http : //csharp-station.com/Tutorial/AdoDotNet/Lesson04

但更好的方法是將數據直接讀入對象。 有關創建此類擴展方法的詳細信息,請參見此答案: 將數據讀取器中的行轉換為鍵入的結果

樣本擴展方法:

public static List<T> ReadList<T>(this IDataReader reader, 
                                  Func<IDataRecord, T> generator) {
     var list = new List<T>();
     while (reader.Read())
         list.Add(generator(reader));
     return list;
}

在您的SqlDataReader rd = cmd.ExecuteReader(); 行,您將需要以下內容:

var departmentList = reader.ReadList(x => new Department {
                                           DeptID = x.GetInt32(0),
                                           DeptName = x.GetString(1)
                                    });

然后,一旦有了這樣的對象列表,就可以將它們返回到前端視圖ajax:

如何在ajax返回上解析字符串的JSON列表?

Json字符串的對象列表

我還想指出,您應該using塊包圍SqlConnectionSqlCommandSqlDataReader等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM