将JSON数据传递给Web服务

时间:2010-07-08 20:54:25

标签: asp.net json

我有两个参数(categoryName和categoryDe​​scription),我需要使用JSON传递给Web服务。我发现传递categoryName的语法,但是无法获得传递两个参数的正确语法。这是代码。

<script src="js/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">

    $(document).ready(function() {
        $('#hbtnCreateCategory').click(function(event) {
            $.ajax({
                type: "POST",
                url: "lwsServiceData.asmx/CreateHelpDeskCategory",
                data: "{'categoryName': '" + $('#categoryName').val() + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    AjaxSucceeded(msg);
                },
                error: AjaxFailed
            });

        });

        function AjaxSucceeded(result) {
            alert(result.d);
            $('#result').val = result.d;
        }

        function AjaxFailed(result) {
            alert(result.status + ' ' + result.statusText);
        }

    });
</script> 

提前致谢。

4 个答案:

答案 0 :(得分:2)

试试这个:

数据:“{categoryName:'”+ $('#categoryName')。val()+“',categoryDe​​scription:'”+ $('#categoryDe​​scription')。val()+“'}”,< / p>

不要忘记更新CreateHelpDeskCategory以接受这两个参数。

要添加第三个参数,请使用以下命令:

数据:“{categoryName:'”+ + $('#categoryName')。val()+“',categoryDe​​scription:'”+ + $('#categoryDe​​scription')。val()+“',modifiedBy :'jsmith'}“,

答案 1 :(得分:1)

你应该使用

data: {categoryName: JSON.stringify($('#categoryName').val()),
       categoryDescription: JSON.stringify($('#categoryDescription').val())}

作为$.ajax方法的参数。函数JSON.stringify可用于将任何数据序列化为JSON(可从http://www.json.org/js.html下载)。手动序列化至少是因为应该序列化的字符串包含必须转义的字符(如“”或“\”请参阅http://www.json.org/)。

还要看一下我之前回答的另一个问题:How do I build a JSON object to send to an AJAX WebService?

答案 2 :(得分:0)

data: "{'categoryName': '" + $('#categoryName').val() + "', 'categoryDescription': 'some description'}"

如果它需要是动态的:

data: "{'categoryName': '" + $('#categoryName').val() + "', 'categoryDescription': '" + $('#categoryDescription').val() + "'}"

答案 3 :(得分:0)