我正在使用存储过程根据一些用户输入查询内部数据库。
我已经达到了我的ajax请求将收到我的控制器使用StringBuilder构建的JSON字符串的程度。响应字符串的格式与以下内容完全相同:
{ "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; } }
答案 0 :(得分:1)
看看parseJSON,这听起来可能会对你有帮助。
http://api.jquery.com/jQuery.parseJSON/
我还建议你看看这篇文章: How to make simple JSON object using C# string Builder