这是我第一次尝试使用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;
}
}