java - 在 sling servlet 中传递一组对象

标签 java jquery servlets aem

我有一个对象数组。

var mydata1 = {};
var mydata2={};
mydata1.name="john";
mydata2.class="third";
mydata2.name="pan";
mydata3.class="second";
var dataArray= new Array();
dataArray[0]=mydata1;
dataArray[1]=mydata2;

in ajax call
  jQuery.ajax({
        url: '/myservlet',
        type: 'POST',
        data: dataArray,
        async: false,
        success: function(result) {
            alert("Saved Node.")
        },
        failure:function(result) {
            alert("Not Saved")
        }
    });

需要做对象,因为对象中的值是动态的,而且以后会发生变化。如何通过ajax传递这种对象。 我们可以换成 JSON 吗?但是也需要 servlet 中的迭代。 提前致谢。

最佳答案

在数据数组上使用 JSON.stringify() 函数将其序列化为 JSON 格式:

jQuery.ajax({
    url: '/myservlet',
    type: 'POST',
    data: JSON.stringify(dataArray),
    ...

然后您可以使用 JSONArray 读取 servlet 中的 JSON :

String requestData = request.getReader().readLine();
JSONArray array = new JSONArray(requestData);
// to get name property of the first object:
array.getJSONObject(0).getString("name");

创建的 JSON 将只是一行文本,因此我们不需要从请求读取器读取更多行。

关于java - 在 sling servlet 中传递一组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404147/

相关文章:

javascript - 将 $.ajax() 中的回调响应视为 JSON

servlets - AEM 6.3 : Error while calling POST Servlet

java - Spring 测试中未调用方面

Java 堆栈不遵循 LIFO

javascript - 使用 jquery 撤消、重做、删除所选图像

javascript - .replace() 在 jQuery 函数中不起作用

java - 如何使用 Java servlet 在给定条件下将值插入表中?

ssl - 如何使用jetty建立2路SSL认证连接

java - 如何将 NetBeans ant 构建移植到构建服务器 (Atlassian Bamboo)

java - 将网络摄像头视频流式传输到 AWS Kinesis?