2013-07-09 191 views
0

我正在使用存儲過程來查詢基於某些用戶輸入的內部數據庫。MVC4解析json從Ajax請求返回

我已經知道了,我的ajax請求會收到一個JSON字符串,我的控制器使用StringBuilder構建。響應字符串格式完全一樣如下:

{ "Head":[ { "FIRST_NAME":"JOHN","LAST_NAME":"SMITH","STORE":"1","COMPANY":"1"} ]} 

我希望將這些值插入到通過jQuery一些HTML輸入標籤,但我有一個很難找到一種方法來正確地分析這些。

  $('#number').blur(function() { 
     $.ajax({ 
      url: "../Home/SearchUser", 
      type: "get", 
      datatype: 'json', 
      data: { reqMem: $("#number").val() }, 
      success: function (response) { 

        // This is where I need to parse and shove some values 
        $("#name").val(response.name) 
        $("#store").val(response.name) 
        // etc.. 
      }, 

      error: function (textStatus) { 
       alert("error: " + textStatus); 
      }, 
     }); 
    }); 

以下是我控制器方法。任何建議將不勝感激。我對此很陌生。

[HttpGet] 
    public string SearchUser(string reqMem) 
    { 
     SqlConnection con = new SqlConnection("I manually have my string here") 
     SqlDataAdapter da = new SqlDataAdapter(); 
     SqlCommand cmd = new SqlCommand(); 
     DataTable dt = new DataTable(); 
     cmd = new SqlCommand("dbo.spx_findReqMember", con); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@reqMemName", reqMem); 
     da.SelectCommand = cmd; 
     da.Fill(dt); 

     StringBuilder JsonString = new StringBuilder(); 

     //Exception Handling 
     if (dt != null && dt.Rows.Count > 0) 
     { 
      JsonString.Append("{ "); 
      JsonString.Append("\"Head\":[ "); 

      for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       JsonString.Append("{ "); 
       for (int j = 0; j < dt.Columns.Count; j++) 
       { 
        if (j < dt.Columns.Count - 1) 
        { 
        JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + 
        "\":" + "\"" + 
        dt.Rows[i][j].ToString().TrimEnd() + "\","); 
        } 
        else if (j == dt.Columns.Count - 1) 
        { 
        JsonString.Append("\"" + 
        dt.Columns[j].ColumnName.ToString() + "\":" + 
        "\"" + dt.Rows[i][j].ToString().TrimEnd() + "\""); 
        } 
       } 

       /*end Of String*/ 
       if (i == dt.Rows.Count - 1) 
       { JsonString.Append("} "); } 
       else 
       { JsonString.Append("}, "); } } 

      JsonString.Append("]}"); 
      return JsonString.ToString(); } 
     else 
     { return reqMem; } } 
+1

作爲一般的提示,我會強烈建議對JavaScript的串行器類閱讀起來,http://msdn.microsoft.com/ EN-US /庫/ system.web.script.serialization.javascriptserializer.aspx。這將允許你將你的數據存儲到一個對象中,然後自動爲你編寫它,處理所有的轉義本身。 –

+0

我會看看那個。感謝您的意見。 –

回答