2012-07-18 41 views
2

我正在使用websocket和JsonNode播放framewrok 2。前端通过使用websocket连接到播放框架后端。我将一个javascript数组转换成一个json节点,并通过使用webscoket连接将其发送到后端。 现在我的问题是如何将json对象转换为java数组或任何合适的结构,以便我可以操纵数据。将JsonNode转换为java数组

这是我创建

var myjeson = {"x":arrayX,"y":arrayY} ; 

JSON对象,这是其动态

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()); 
    } 

当我检查的消息传递日志:下面 是日志信息 [信息]应用 -

{"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]} 

现在我会想将这些数据在阵列中,这样我可以访问他们。 任何建议将不胜感激。另外建议也欢迎。

回答

3

答案主要在Jackson documentationtutorial;

你有几种方法将该JsonNode转换为有用的数据。

如果您事先知道数据的结构,您可以使用Data Binding的方法:对于“完整”绑定,使一个类对应所有字段);对于结构不那么结构化的方法,'raw'绑定可以让你使用通用对象。

否则Tree Model的方法应该为你工作;您可以在链接页面找到的示例与您的使用案例非常相符。

请尝试该示例,然后如果您有更具体的问题回来确切的实际或phylosophical问题!

+1

谢谢Stefano能够使用泛型的原始绑定实现json节点。你做了我的周! – 2012-07-18 14:29:05

+0

@faisalabdulai欢迎您:)如果我的回答是有益的,不要忘记投票/选择它作为一个很好的答案。如果您有想要分享的有用的详细反馈,您仍然可以投我的答案,但添加自己的答案。 – Stefano 2012-07-18 14:34:11

+0

如果你正在寻找代码示例,这里的答案http://stackoverflow.com/a/35599623/2369266 – 2016-02-24 10:33:37