我有一个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(...)
中存在所有变量?
由于
答案 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}}