我正在使用Play框架2、WebSocket和JsonNode进行开发。前端通过WebSocket连接到Play框架的后端。我将JavaScript数组转换为JsonNode,并通过WebSocket连接将其发送到后端。
现在我的问题是如何将Json对象转换为Java数组或任何适当的数据结构,以便我可以操作数据。
这是我创建的Json对象:
这是我创建的Json对象:
var myjeson = {"x":arrayX,"y":arrayY} ;
这是一个动态填充的数组。
function pixelCount ()
{ arrayX[counter] = xcoordinate;
arrayY[counter] = ycoordinate;
socket.send(" from array X,Y "+arrayX[counter]+ " " +arrayY[counter]);
++counter;
}
以下代码会发送数据
$('button.send').click(function() {
sock.send(JSON.stringify(myjeson));
在服务器端,我有以下代码
public static WebSocket<JsonNode> givenIn() {
return new WebSocket<JsonNode>() {
// called when the websocket is established
public void onReady(WebSocket.In<JsonNode> in, WebSocket.Out<JsonNode> out) {
// register a callback for processing instream events
in.onMessage(new Callback<JsonNode>() {
public void invoke(JsonNode event) {
Logger.info(event.toString());
}
当我查看日志时,消息已经被传递了: 以下是日志信息 [info] 应用程序 -
{"x":
[78.72727298736572,79.72727298736572,82.72727298736572,
7298736572,93.72727298736572,83.72727298736572132.72727298736572],
"y":
[82.6363639831543,82.6363639831543,63.54545593261719,63.54545593261719,64.545455932
61719,65.54545593261719,70.54545593261719,189.5454559326172,188.5454559326172]}
现在我想把这些数据放入一个数组中,以便我可以访问它们。欢迎任何建议,也欢迎提供替代方案。
new ObjectMapper().convertValue(jsonNode, ArrayList.class)
的意思是将jsonNode
转换为ArrayList
的格式。 - Alex Burdusel