我有一个对象数组。
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/