자바에서 개체를 JSONObject (org.json.JSONObject)로 변환하는 데 문제가 있습니다.자바 : JSONObject 상속
개체 X가 자식 개체 Y입니다. "새로운 JSONObject (this) .ToString()"을 만들 때 JSONObject에서 만든 개체 X (자식)의 특성 만 만듭니다.
부모 클래스 :
import org.json.JSONObject;
public class Class1 {
private String name;
private int number;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String toString(){
return new JSONObject(this).toString();
}
}
아이 클래스 :
import org.json.JSONObject;
public class Class2 extends Class1 {
private String attrChildString;
private int attrChildInt;
/**
* @param args
*/
public static void main(String[] args) {
Class2 class2 = new Class2();
class2.setName("test");
class2.setNumber(5);
class2.setAttrChildInt(10);
class2.setAttrChildString("child");
System.out.println("toString child : " + class2.toString());
System.out.println("toString Parent : " + class2.toStringParent());
}
public String getAttrChildString() {
return attrChildString;
}
public void setAttrChildString(String attrChildString) {
this.attrChildString = attrChildString;
}
public int getAttrChildInt() {
return attrChildInt;
}
public void setAttrChildInt(int attrChildInt) {
this.attrChildInt = attrChildInt;
}
public String toString(){
return new JSONObject(this).toString();
}
public String toStringParent(){
return super.toString();
}
}
결과 :의 toString 아이 : { "attrChildInt": 10, "attrChildString"
아래의 예를 참조하십시오 : "child"} toString 상위 : { "attrChildInt": 10, "attrChildString": "child"}
하지만 부모 값을 표시해야합니다. 예 : { "attrChildInt": 10, "attrChildString": "아이", "이름": "테스트", "수": "5"}
어떤 생각?
감사합니다.
'@ Override' 주석을 추가하여'toString()'메소드가 덮어 쓰기되어 있는지 확인하십시오. – Dragos