如何在java中发送Json对象

如何在java中发送Json对象,java,json,client-server,Java,Json,Client Server,因此,我运行了一个java服务器客户端套接字,并尝试通过该行发送一个Json对象。我在尝试发送Json对象时遇到问题。因为Json对象没有序列化。因此,我接下来要做的是将其作为字符串发送到客户端,这是可行的,但我需要重建Json对象树 在发送Json对象的字符串版本后,如何重建Json对象树? 这里有一些代码 服务器端 //Snip //Inside loop out.writeObject(clientData.toString()); //End Snip 客户端 //Sn

因此,我运行了一个java服务器客户端套接字,并尝试通过该行发送一个Json对象。我在尝试发送Json对象时遇到问题。因为Json对象没有序列化。因此,我接下来要做的是将其作为字符串发送到客户端,这是可行的,但我需要重建Json对象树

在发送Json对象的字符串版本后,如何重建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"}

使用类似Jackson的库:。有了它,您可以生成和解析JSON


Genson是Jackson的另一种选择:

使用类似Jackson的库:。有了它,您可以生成和解析JSON


Genson是Jackson的另一种选择:

使用类似Jackson的库:。有了它,您可以生成和解析JSON


Genson是Jackson的另一种选择:

使用类似Jackson的库:。有了它,您可以生成和解析JSON



Jackson的另一个替代方法是Genson:

使用JSON解析器/生成器。向我们展示您尝试了什么,以及您发送的字符串是什么样子的?您是手工生成JSON的吗?clientData.toString()是做什么的?生成JSON?clientData是一个JSON对象,当我运行toString()时,它会将其转换为字符串形式。我将使用JSON解析器/生成器上传输出。告诉我们您尝试了什么,以及您发送的字符串是什么样子的?您是手工生成JSON的吗?clientData.toString()是做什么的?生成JSON?clientData是一个JSON对象,当我运行toString()时,它会将其转换为字符串形式。我将使用JSON解析器/生成器上传输出。告诉我们您尝试了什么,以及您发送的字符串是什么样子的?您是手工生成JSON的吗?clientData.toString()是做什么的?生成JSON?clientData是一个JSON对象,当我运行toString()时,它会将其转换为字符串形式。我将使用JSON解析器/生成器上传输出。告诉我们您尝试了什么,以及您发送的字符串是什么样子的?您是手工生成JSON的吗?clientData.toString()是做什么的?生成JSON?clientData是一个JSON对象,当我运行toString()时,它会将其转换为字符串形式。我将上传输出你能检查我的问题吗你能检查我的问题吗你能检查我的问题吗[