Я использую хранимую процедуру для запроса внутренней базы данных на основе некоторого ввода пользователя.MVC4 Parse json возвращается с запроса Ajax
У меня есть это до такой степени, что мой запрос ajax получит строку JSON, которую мой контроллер строит с помощью StringBuilder. Строка ответа отформатирована так же, как в следующем:
{ "Head":[ { "FIRST_NAME":"JOHN","LAST_NAME":"SMITH","STORE":"1","COMPANY":"1"} ]}
Я хочу, чтобы вставить эти значения в некоторых HTML тегов ввода с помощью JQuery, но я с трудом найти способ правильно анализировать их.
$('#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; } }
как общие указания, я настоятельно рекомендовал бы читать на классе JavaScript serialiser, http://msdn.microsoft.com/ ан-нас/библиотека/system.web.script.serialization.javascriptserializer.aspx. Это позволит вам хранить ваши данные в объекте, а затем автоматически сериализовать его для вас, обрабатывая все экранирование. –
Я посмотрю на это. Спасибо за ввод. –