如何在javascript中创建数组对象数组,然后将其传递给java

时间:2012-07-30 21:13:23

标签: java javascript jquery json

说明我的观点: 我有姓名年龄和地址4人

[Sam, 23, nj],
[Nome, 25, ny],
[Sim, 20, pa],
[Jack, 12, pa]

我需要将这4行发送到java端。

我熟悉java端编码,所以我可以从列表等中检索4行等。我是javascripts的新手,所以我想知道如何将所有这些数据放入变量然后将其发送到java,以便java了解我发送了4组数据。

我想做对象的hashmap,无论哪种方式,因为我是新手,我不知道要走哪条路。建议。

我知道如何通过ajax发布数据,只有我正在努力的部分是创建arrAY所以我的java端可以解析它。

2 个答案:

答案 0 :(得分:1)

您可以将其序列化为JSON,因此它看起来像这样:

[{name: "Sam", age: 23, address: "nj"}, 
 {name: "Nome", age: 25, address: "ny"}]

答案 1 :(得分:1)

Java支持JSON对象:http://www.json.org/java/ 使用这些方法。

将数组格式转换为存储变量并使用stringify方法。

var a = Array([Sam, 23, nj], [Nome, 25, ny], [Sim, 20, pa], [Jack, 12, pa]);
var jsonText = JSON.stringify(a);
//send jsonText to java via post after this

修改

为了回答下面的问题,我的Java因废弃而生锈,但你需要在这里使用库https://github.com/douglascrockford/JSON-java,并通过发布数据发送客户端数据jsonText:

<form method='post' action='/Source/jsp/X.jsp' id='jsonform'>
<input id='json' name='json' value=''>
</form>

然后运行一个脚本用jsonText填充输入值并提交它。

完成后,您可以获取POST数据并对其进行反序列化,并在Java程序中使用它。

var input = document.getElementById('json');
var form = document.getElementById('jsonform');
input.value = jsonText;
form.submit();

对于Java部分,你说你熟悉它,所以我会把这一点留给你。