2013-10-09 70 views
0

所以我有一个java服务器客户端套接字正在运行,并且我试图通过线路发送Json对象。当我尝试发送Json对象时遇到问题。因为Json对象没有被序列化。所以我做的是将它作为字符串发送到客户端,这是有效的,但我需要重建Json对象树。如何在java中发送Json对象

如何在发送Json对象的Stringed版本后重建Json对象树?

这里是一些代码

服务器端

//Snip 
    //Inside loop 
    out.writeObject(clientData.toString()); 
//End Snip 

客户机端

//Snip 
    while ((fromServer = objectIO.readObject()) != null) { 
      commands.interpretServer(fromServer); 
      sleepThread(100); 
      if (fromServer.equals("Bye.")){ 
       break; 
      } 
    } 
//End Snip 

的JSON是半生成手动

clientData = Json.createObjectBuilder() 
        .add("playerX", playerContent[0][1]) 
        .add("playerY", playerContent[1][1]) 
        .add("playerTotalHealth", playerContent[2][1]) 
        .add("playerCurrentHealth", playerContent[3][1]) 
        .add("playerTotalMana", playerContent[4][1]) 
        .add("playerCurrentMana", playerContent[5][1]) 
        .add("playerExp", playerContent[6][1]) 
        .add("playerExpTNL", playerContent[7][1]) 
        .add("playerLevel", playerContent[8][1]) 
        .add("points", playerContent[9][1]) 
        .add("strength", playerContent[10][1]) 
        .add("dexterity", playerContent[11][1]) 
        .add("constitution", playerContent[12][1]) 
        .add("intelligence", playerContent[13][1]) 
        .add("wisdom", playerContent[14][1]) 
        .add("items", Json.createArrayBuilder() 
          .add(items[0]).add(items[1]) 
          .add(items[2]).add(items[3]) 
          .add(items[4]).add(items[5]) 
          .add(items[6]).add(items[7]) 
          .add(items[8]).add(items[9]) 
          .add(items[10]).add(items[11]) 
          .add(items[12]).add(items[13]) 
          .add(items[14]).add(items[15]) 
          .add(items[16]).add(items[17]) 
          .add(items[18]).add(items[19]) 
          .add(items[20]).add(items[21]) 
          .add(items[22]).add(items[23]) 
          .build()) 
        .add("currentMapX", playerContent[16][1]) 
        .add("currentMapY", playerContent[17][1]) 
        .build(); 

输出客户端收到

{"playerX":"2*32","playerY":"7*32","playerTotalHealth":"100","playerCurrentHealth":"100","playerTotalMana":"50","playerCurrentMana":"50","playerExp":"0","playerExpTNL":"20","playerLevel":"1","points":"0","strength":"1","dexterity":"1","constitution":"1","intelligence":"1","wisdom":"1","items":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"currentMapX":"0","currentMapY":"0"} 
+0

使用JSON解析器/发电机。 –

+0

向我们展示您尝试的内容,以及您发送的字符串是什么样的?您是否手动生成JSON? – herman

+0

clientData.toString()是做什么的?生成JSON? – herman

回答