在使用 gson 将对象转换为 json 时,无法使 java.lang.reflect.Method 构造函数可访问



这是我第一次尝试使用GSON。我收到此错误。

Can not make a java.lang.reflect.Method constructor accessible

这是我用来创建 json 的代码:

SoundEffects soundEffect = new SoundEffects("test", "test");
String json = new Gson().toJson(soundEffect);

这是类音效 = 新的媒体录音机((;:

   public class SoundEffects /*implements Serializable*/ {
private MediaRecorder mediaRecorder;
private String name;
private String output;
public SoundEffects(){
}
public SoundEffects(String output, String name) {
    this.output = output;
    this.name = name;
}
public String getName() {
    return this.name;
}
public void setName(String name) {
    this.name = name;
}
public String getOutput() {
    return  output;
}
public void setOutput(String output) {
    this.output = output;
}

在类中放置空构造函数没有帮助,并且仍然会发生错误。

您可以通过自定义适配器反序列化,

Gson getCustomGson(){
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(SoundEffects.class, new CustomDeserializer());
    return gsonBuilder.create();
}
class CustomDeserializer implements JsonDeserializer<SoundEffects> {
    @Override
    public SoundEffects deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
           SoundEffects soundEffects = new SoundEffects();
           // do deserialize your object here
           .....
           // last, you can create the MediaRecorder and set to the object
           MedaiRecorder mediaRecorder = new MediaRecorder();
           soundEffects.setMediaRecorder(mediaRecorder);
           return soundEffects;
    }
}

最新更新