mingli-utils/src/main/java/com/mingliqiye/utils/json/converters/GsonJsonStringConverterAdapter.java
minglipro baa5aafe23
All checks were successful
Gitea Actions Build / Build (push) Successful in 1m0s
no message
2025-09-11 19:32:51 +08:00

51 lines
1.1 KiB
Java

package com.mingliqiye.utils.json.converters;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;
public class GsonJsonStringConverterAdapter<
T extends JsonStringConverter<TT>,
TT
> {
private final JsonStringConverter<TT> jsonStringConverter;
public GsonJsonStringConverterAdapter(T jsonStringConverter) {
this.jsonStringConverter = jsonStringConverter;
}
public static <
T extends JsonStringConverter<TT>,
TT
> GsonJsonStringConverterAdapter<T, TT> of(T t) {
return new GsonJsonStringConverterAdapter<>(t);
}
/**
* 获取Gson类型适配器
*
* @return Gson的TypeAdapter实例
*/
public TypeAdapter<TT> getGsonTypeAdapter() {
return new TypeAdapter<TT>() {
@Override
public void write(JsonWriter out, TT value) throws IOException {
if (value == null) {
out.nullValue();
return;
}
out.value(jsonStringConverter.convert(value));
}
@Override
public TT read(JsonReader in) throws IOException {
String value = in.nextString();
return jsonStringConverter.deConvert(value);
}
};
}
}