fai*_*lai 9 json playframework playframework-2.0
我正在使用websocket和JsonNode开发Play framewrok 2。前端通过使用websocket连接到play框架后端。我通过使用webscoket连接将一个javascript数组转换为json节点并将其发送到后端。现在我的问题是如何将json对象转换为java数组或任何合适的结构,以便可以处理数据。
这是我创建的json对象
var myjeson = {"x":arrayX,"y":arrayY} ;
Run Code Online (Sandbox Code Playgroud)
这是动态填充的数组
function pixelCount ()
{ arrayX[counter] = xcoordinate;
arrayY[counter] = ycoordinate;
socket.send(" from array X,Y "+arrayX[counter]+ " " +arrayY[counter]);
++counter;
}
Run Code Online (Sandbox Code Playgroud)
下面的代码发送数据
$('button.send').click(function() {
sock.send(JSON.stringify(myjeson));
Run Code Online (Sandbox Code Playgroud)
在服务器端,我有以下代码
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());
}
Run Code Online (Sandbox Code Playgroud)
当我检查日志时,消息已传递:以下是日志信息[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]}
Run Code Online (Sandbox Code Playgroud)
现在,我想将这些数据放在一个数组中,以便可以访问它们。任何建议将不胜感激。也欢迎其他建议。
Ale*_*sel 14
Moving my comment to an answer, as it got upvoted a lot.
This should do what the OP needed:
new ObjectMapper().convertValue(jsonNode, ArrayList.class)
答案主要在Jackson 文档和教程中;
您有多种方法可以将该 JsonNode 转换为有用的数据。
如果您事先知道数据的结构,则可以使用数据绑定方法:对于“完整”绑定,创建一个对应于所有字段的类);对于结构化程度较低的方法,“原始”绑定允许您使用通用对象。
否则,树模型方法应该适合您;您将在链接页面中找到的示例与您的用例非常吻合。
请尝试这个例子,然后如果您有更具体的问题,请返回确切的实际或哲学问题!
归档时间: |
|
查看次数: |
31519 次 |
最近记录: |