使用 jQuery 将 JSON 发送到服务器

Posted

技术标签:

【中文标题】使用 jQuery 将 JSON 发送到服务器【英文标题】:Send JSON to the server using jQuery 【发布时间】:2011-05-06 07:36:00 【问题描述】:

我需要以 JSON 对象的形式将一组 ID 发送到我的服务器端。我正在使用一个下拉列表,其中可以选择多个值来对它们执行操作。

为了将它们放入数组中,我使用了:

var selectedArray = [];

            var selectObj = document.getElementById('addedList');
            var i=0;
            var count=0;
            for(i=0;i<selectObj.options.length;i++)
                selectedArray[count] = selectObj.options[i].value;
                count++;
            

现在的问题是,我需要将这些 ID 发送到服务器。 我一直想像 JSON 对象一样发送它,因为它有可变数量的参数。据我所知,您可以将 JS 对象转换为 JSON。

现在我确实有几个问题:

你能给我一个如何转换它的例子吗?似乎有一百万种方式,其中之一是JSON.stringify(jsObj);。我的对象将仅由一组值组成。据我所知,这将是一个例子:

 array : ["value1","value2","value3"] 

另一个问题是: 如何使用 jQuery 发送这个?我可以使用 $.getJSON 将 JSON 对象发送到服务器吗? (这在后台使用 $.GET ),还是我需要使用 $.POST ?

现在我一直在尝试,但无法将它弄出来......

$.getJSON 代码

        $.getJSON("removerequest.htm", ids: JSON.stringify(selectedArray) , function(data)
            $('#removerequestdiv').text('');

            $('#removerequestdiv').append('<select name="addedList">');
            for(var index in data)
                $('#removerequestdiv').append('<option value="' + data[index].id + '">' + data[index].voornaam + data[index].familienaam + '</option>');
            
            $('#removerequestdiv').append('</select>');
        );

【问题讨论】:

JQuery: How to PUT JSON via Ajax?的可能重复 getJSON 只抓取一个包含 json 数据的文件。您需要使用某种形式的帖子。有ajax和post。还有一个 json 参数,我相信您可以使用它来发送数据。不记得这是否只是用来告诉返回值是json格式的。 【参考方案1】:

$.getJSON() 例程用于从服务器获取 JSON 编码的内容。您的问题恰恰相反:您想将其发送到 服务器。

您应该了解这里的术语。 javascript 中没有真正的“JSON 对象”。它只是某种 Javascript 对象,在这个意义上并没有什么特别之处。您要做的是将 Javascript 对象序列化 成单个字符串。该字符串是您将发送到服务器的参数,服务器将反序列化该字符串回一个对象(在您的服务器代码使用的任何语言的上下文中)。

因此,当您调用JSON.stringify(obj) 时,您得到的只是一个字符串。将这样的字符串传递回服务器与传递任何其他字符串没有什么不同;它只是一个参数。使用$.post() 发布它,或者您甚至可以将其填充到一个简单的表单输入元素的值中,然后以老式的方式发布表单。

【讨论】:

谢谢,明白了很多!是否可以将 JSON 发送到服务器并使用 $.post() 接收 JSON? 服务器发回的响应被传递给你给$.post()的处理函数,这可以是你想要的任何东西——这取决于服务器软件。如果您的服务器准备响应并将其序列化为 JSON 编码的字符串并将其发送回,那么您的 Javascript 代码可以使用 JSON2 库对其进行解析。 很好的答案。清晰简洁的 +1

以上是关于使用 jQuery 将 JSON 发送到服务器的主要内容,如果未能解决你的问题,请参考以下文章

jQuery - 使用 ajax 调用将 JSON 发送到 WCF 服务为空

JSON 格式(通过 jQuery AJAX 发送 JSON 到 Java/Wicket 服务器)

如何将 JSON 对象从 Python 脚本发送到 jQuery?

jQuery 与 JSON

将 json 对象从 jquery 发送到 angularjs 并使用 ng-repeat

从 Google Sheet Script 将 JSON 数组发送到网络服务