我是gson的新手,并且有一些我没有找到答案的新问题,所以请耐心等待.StackOverflow和谷歌不是我的朋友:(
我有一个java类"User",它的一个属性"externalProfile"是一个包含已经序列化的JSON的Java String.当gson序列化User对象时,它会将externalProfile视为原语,从而转义JSON添加额外的斜杠等.我希望gson单独保留字符串,只是"按原样"使用它,因为它已经是有效且可用的JSON.
为了区分JSON字符串,我创建了一个名为JSONString的简单类,我尝试使用reader/writers,registerTypeAdapter,但没有任何作用.你能帮我吗?
public class User {
private JSONString externalProfile;
public void setExternalProfile(JSONString externalProfile) { this.externalProfile = externalProfile; }
}
public final class JSONString {
private String simpleString;
public JSONString(String simpleString) { this.simpleString = simpleString; }
}
public customJsonBuilder(Object object) {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(GregorianCalendar.class, new JsonSerializer<GregorianCalendar>() {
public JsonElement serialize(GregorianCalendar src, Type type, JsonSerializationContext context) {
if (src == null) {
return null;
}
return new JsonPrimitive(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(src.getTime()));
}
});
Gson gson = builder.create();
return …Run Code Online (Sandbox Code Playgroud)