나는 톤 분석기 API (IBM Bluemix) 난 단지 결코 개체 속성을 읽을하고 필요에 따라JSON 문자열을 기존 객체로 역 직렬화 할 수 있습니까?
내 응용 프로그램에서, 나는 정적 방법을 사용하여 ToneAnalysis
객체를 생성 데이터로 작업 할 GSON 라이브러리를 사용하고 있습니다 그것의 새로운 인스턴스를 생성하십시오. 그래서 나는이 작업을 수행 할 필요가 없습니다 것입니다
ToneAnalysis ta = new ToneAnalysis();
방법 나는 순간에 일을하고있어입니다 ::
string json = "{\"document_tone\": { ... } }";
ToneAnalysis ta = ToneAnalysis.fromJsonString(json)
이 방법 I 개인 파라미터 유효로 만난다 의미 덜 빈 생성자 :
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 객체가 기존의 객체로 직렬화 복원 또는 내 디자인을 재고해야합니까 될 수 있도록 어떤 방법이 있나요?
자바의 직렬화는 공개 인수없는 생성자를 사용합니다. 이 작업을 수행하는 다른 방법이 많지만 직렬화가 아닙니다 (Java 런타임에서 정의한대로) – Tibrogargan
단순 : 사용자 정의 JSON 구문 분석기 만 작성하면됩니다. –
Jackson은 Java 객체로 JSON을 deserialize 할 수 있습니다. – HARDI