Передача данных JSON в веб-сервис - PullRequest
2 голосов
/ 09 июля 2010

У меня есть два параметра (categoryName и categoryDescription), которые мне нужно передать в веб-сервис с помощью JSON. Я нашел синтаксис для передачи 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 ]

2 голосов
/ 09 июля 2010

Попробуйте это:

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

Не забудьте обновить CreateHelpDeskCategory для принятия обоих аргументов.

Чтобы добавить третий аргумент, используйте следующее:

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

1 голос
/ 09 июля 2010

Вы должны использовать

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/).

Посмотрите также на другой вопрос, на который я отвечал ранее: Как мне построить объект JSON для отправки в AJAX WebService?

0 голосов
/ 09 июля 2010

Есть также это: http://code.google.com/p/jquery-json/

0 голосов
/ 09 июля 2010
data: "{'categoryName': '" + $('#categoryName').val() + "', 'categoryDescription': 'some description'}"

и если он должен быть динамическим:

data: "{'categoryName': '" + $('#categoryName').val() + "', 'categoryDescription': '" + $('#categoryDescription').val() + "'}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...