2012-02-13 5 views
1

android에서 데이터 조작을 처리하는 메소드가있는 모델 클래스를 사용하고 있습니다. 내 데이터는 json으로 webservices에서 가져온 것입니다. JSONObject를 사용하여 클래스 수준 특성 값을 저장할 가능성을 고려하고 있습니다. 그러나 JSONObj를 "holder"변수로 사용하고 액세스 메소드를 만드는 방법을 알지 못합니다. 내가 jsonRepository이 값을 포함한다으로, 항상 예를 ​​들어JSONObject를 클래스 속성으로 저장/검색

디자인 타임에 알 수없는, 이러한 방법을 미리 결정하고 싶지 않아, 내가 가지고 싶습니다 공용 클래스 사용자 { 개인 된 JSONObject jsonAttributes을; 다음이 클래스 외부에서

public User(String json) { 
    this.jsonAttributes= new JSONObject(json); 
} 

[IMPLICIT attribute access methods] 

public string Prop1() returns jsonAttributes.getString("prop1"); 
public string Prop1(String newProp1) returns jsonAttributes.putString("prop1",newProp1); 

public string Prop2() returns jsonRepository.getString("id"); 
public string Prop2(String newProp2) returns jsonAttributes.putString("prop2",newProp2); 
.... 

, 나는 ... 단순히

User myUser = new User(someValidJson); 
String myString = myUser.Prop1 

잘못을 속성에 액세스 것? 그렇지 않은 경우 암시 적 속성 설정/가져 오기를 어떻게 관리합니까?

+1

아무 것도 Json에서 속성을 설정하고 getter 메소드로이 필드를 가져 오는 사용자 클래스를 만들 수 없습니다. 그게 뭐가 잘못 됐니? 심판에 –

답변

0

위의 설명에서 언급했듯이 모든 관련 멤버 변수를 사용하여 사용자 클래스를 만들고 사용자 클래스의 이원 정보를 채우기 위해 JSON 데이터를 구문 분석하기 만하면됩니다.

당신이 이것을 할 수있는 방법이 많이 있지만 유연성이있어 builder pattern을 사용하는 것이 좋습니다. 이는 JSON 데이터가 미래에 변경 될 때 유용 할 수 있습니다.

+0

빌더 패턴, thx. 대신 로컬 SQLite 저장소와 JSON을 검색하고 db를 채우는 서비스를 선택했습니다. – JBird

관련 문제