从JSON对象

时间:2017-09-28 03:05:32

标签: java json

我有一个NodeJS WebSocket服务器,我需要在其中创建一个Java客户端应用程序,但是我以前没有使用过JSON和Java,我在理解如何创建类实例时遇到了一些问题。根据Json对象中的type值更正数据包。

为了给你更多的洞察力,我们有Packet类是抽象的,然后是子类,如AuthenticationPacket。我们有Map<>存储类,Map<String, Class>所以示例条目为("Authentication success", AuthenticationPacket.class)

以下是我们从服务器返回的JSON数据示例。

{
    "type": "Authentication success",
    "data": 
    {
        "username": "Hobbyist",
        "accountStatus": "USER"
    }
}

所以我的问题是我如何从JSON响应的data字段中的变量创建一个新类,而不必根据具有{{1}的类型一次传递一个参数}

有没有办法在JSON和类之间进行某种链接,它只是创建一个新的类实例,并且new AuthenticationPacket(...)中存在所有变量?

由于

1 个答案:

答案 0 :(得分:1)

我希望我没有弄错你。

如果你可以将json字符串转换为JSONObject(我使用的是vert.x JsonObject)

PacketSErvice处理所有请求

 public interface Packet {  

            Packet fromJson(JSONObject object); 

            JSONObject asJson();

        }

数据包接口

Xpacket packet = PacketService.newInstance().handlePacket(XPacket.class,jsonData);

如果您有类XPacket,YPacket,ZPacket

,请执行您的请求
{{1}}