如何在jquery中读取响应的json值

时间:2012-02-20 22:06:39

标签: jquery asp.net json parsing

这是我在网站上的一个小部件的脚本部分。当“inp”类的文本框具有更改的值时,代码将所有参数发送到通过数据库查找并返回记录为json的Web服务。我的问题是我不知道如何获取json response中的值。我正在尝试将新的div添加到res12 div作为结果应该来自json.I能够创建div但值是未定义的,并且脚本运行多个时间,我不明白为什么。我需要你的帮助。谢谢你提前。 json的回应

[{“description”:“发送给会议”,“日期”:“19.02.2012 21:34:26”,“lid”:“6”,“companyname”:“M& L”,“ personname“:”jack ferrel“,”email“:”jacky@ml.com“,”fax“:”123123“,”phone“:”345345“,”industryname“:”finance“,”teamname“:”w12et “,”发件人“:”jack ferrel“,”statusname“:”waiting“}]

   <script type="text/javascript">

          var typingTimer;               
          var doneTypingInterval = 5000;
          $(document).ready(function () {
              $(".inp").keyup(function () {
                    typingTimer = setTimeout(doneTyping, doneTypingInterval);
                });
                $(".inp").keydown(function () {
                    clearTimeout(typingTimer);
                });

            });

            function doneTyping() {
                $.ajax({
                    type: "POST",
                    url: "letter.ashx",
                    data: { CompanyName: $("#<%=TextBox1.ClientID%>").val(), PersonName: $("#<%=TextBox3.ClientID%>").val(), Email: $("#<%=TextBox5.ClientID%>").val() },
                    dataType: "application/json",
                    success: function (msg) {

                        var newdiv = $('<div class="e"><div></div><div>'+CompanyName+'</div><div>'+Sender+'</div><div>1</div><div>2</div></div> ');

                        $('#res12').append(newdiv);
                    }
                });
            }
        </script>

1 个答案:

答案 0 :(得分:2)

您在创建的新div中看到undefined,因为未定义CompanyNameSender。如果它们是ajax响应的一部分,则使用msg.CompanyNamemsg.Sender。试试这个。

        function doneTyping() {
            $.ajax({
                type: "POST",
                url: "letter.ashx",
                data: { CompanyName: $("#<%=TextBox1.ClientID%>").val(), PersonName: $("#<%=TextBox3.ClientID%>").val(), Email: $("#<%=TextBox5.ClientID%>").val() },
                dataType: "application/json",
                success: function (msg) {

                    var newdiv = $('<div class="e"><div></div><div>'+msg.CompanyName+'</div><div>'+msg.Sender+'</div><div>1</div><div>2</div></div> ');

                    $('#res12').append(newdiv);
                }
            });
        }

<强>更新

您在问题中发布的json有companyname而非CompanyNamesender相同。请注意,JavaScript区分大小写,因此您必须在代码中使用companynamesender来获取值。