0

我正在使用存储过程根据一些用户输入查询内部数据库。

我已经做到了,我的 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;  } }
4

1 回答 1

1

看看 parseJSON,听起来可能对你有帮助。

http://api.jquery.com/jQuery.parseJSON/

我还推荐你看这篇文章: 如何使用 C# 字符串生成器制作简单的 JSON 对象

于 2013-07-09T23:46:05.253 回答