我正在使用 GSON 库处理来自 Tone Analyzer API (IBM Bluemix) 的数据
在我的应用程序中,我ToneAnalysis
使用静态方法创建了一个对象,因为我只需要读取对象属性并且从不创建它的新实例。所以我永远不需要这样做:
ToneAnalysis ta = new ToneAnalysis();
我现在做事的方式是:
string json = "{\"document_tone\": { ... } }";
ToneAnalysis ta = ToneAnalysis.fromJsonString(json)
这种方法意味着我最终得到了一个私有的无参数空构造函数:
public class ToneAnalysis {
private DocumentTone document_tone;
public DocumentTone getDocumentTone() {
return this.document_tone;
}
public static ToneAnalysis fromJsonString(String json) {
return new Gson().fromJson(json, ToneAnalysis.class);
}
private ToneAnalysis() {
}
}
因为fromJson
通过反射创建对象。我无法做到这一点:
this = gson.fromJson(json, ToneAnalysis.class);
有什么方法可以将 JSON 对象反序列化为现有对象,还是我需要重新考虑我的设计?