Java 从字符串和映射构建JSON字符串<;字符串,字符串>;与GSon合作的领域?

Java 从字符串和映射构建JSON字符串<;字符串,字符串>;与GSon合作的领域?,java,json,gson,Java,Json,Gson,我正试图围绕JSON编写一个包装器来发送websocket消息。我创建了这个类,它允许您使用事件名称进行构造,然后传递事件数据的关联数组 如何在getString方法中解析JSON,如下是JSON的一个示例: { "event_name": "some event name", "event_data": { "some data": "some data value&quo

我正试图围绕JSON编写一个包装器来发送websocket消息。我创建了这个类,它允许您使用事件名称进行构造,然后传递事件数据的关联数组

如何在
getString
方法中解析JSON,如下是JSON的一个示例:

{
    "event_name": "some event name",
    "event_data": {
        "some data": "some data value",
        "some more dat": "some more data value"
    }
}
类别:

package com.eu.websockets.events.server;

import java.util.HashMap;
import java.util.Map;

public abstract class ServerWebSocketEvent {
    private String eventName;
    private Map<String, String> eventData;

    public ServerWebSocketEvent(String eventName) {
        this.eventName = eventName;
        this.eventData = new HashMap<>();
    }

    public void addEventData(String key, String value) {
        eventData.put(key, value);
    }

    public String getString() {
        
    }
}
package com.eu.websockets.events.server;
导入java.util.HashMap;
导入java.util.Map;
公共抽象类ServerWebSocketEvent{
私有字符串eventName;
私有地图数据;
公共服务器WebSocketEvent(字符串eventName){
this.eventName=eventName;
this.eventData=newhashmap();
}
public void addEventData(字符串键、字符串值){
eventData.put(键、值);
}
公共字符串getString(){
}
}

要使字段名与您呈现的JSON中的字段名不同,您需要使用
@SerializedName
指示,或者在这种情况下,您还可以将
字段命名策略设置为
Gson

因此,对于
@SerializedName

    @SerializedName("event_name")
    private String eventName;
    @SerializedName("event_data")
    private Map<String, String> eventData;
    ...
public String getString() {
    return new Gson().toJson(this)
}

您正在尝试将您的
ServerWebSocketEvent
序列化为JSON,还是尝试将其从JSON反序列化?术语“解析”通常在反序列化数据时使用,但听起来像是要序列化。你能不能也展示一下你到目前为止已经尝试了什么(如果你有一些不起作用的代码)?我想获取一个字符串并映射,然后从它@Marcono1234创建一个JSON字符串发送回客户端。我的问题中包含了一个模板。
public String getString() 
    return new GsonBuilder()
        .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
        .setPrettyPrinting() // This one is not needed use if you want to
        .create().toJson(this);
}