可以使用以下代码将Map转换为JsonObject:
```
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.Map;
public class MapToJsonConverter {
public static JsonObject convert(Map map) {
JsonObject jsonObject = new JsonObject();
for (Map.Entry entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value instanceof String) {
jsonObject.addProperty(key, (String) value);
} else if (value instanceof Number) {
jsonObject.addProperty(key, (Number) value);
} else if (value instanceof Boolean) {
jsonObject.addProperty(key, (Boolean) value);
} else if (value instanceof Character) {
jsonObject.addProperty(key, (Character) value);
} else if (value instanceof JsonObject) {
jsonObject.add(key, (JsonObject) value);
} else if (value instanceof Map) {
jsonObject.add(key, convert((Map) value));
}
}
return jsonObject;
}
public static void main(String[] args) {
// Example usage
Map map = Map.of(
"name", "John",
"age", 30,
"isMarried", true,
"address", Map.of(
"city", "New York",
"state", "NY"
)
);
JsonObject jsonObject = convert(map);
System.out.println(jsonObject.toString());
}
}
```
这个方法会递归地将嵌套的Map转换为JsonObject。注意,只有String、Number、Boolean、Character、JsonObject和Map类型的值才能被转换为JsonObject。如果Map中包含其他类型的值,该方法将会抛出异常。