2012-07-18 45 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