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 に答える