Frage

Ich versuche, diese innere Klasse zu serialisieren

static class functionMessage{
    String type = "function";
    String id;
    String function;
    Object parameters;

    public functionMessage(String ID, String Function, Boolean Parameters) {
        this.id = ID;
        this.function = Function;
        this.parameters = (Boolean) Parameters;
    }
}

mit

new flexjson.JSONSerializer().exclude("*.class").serialize( 
    new functionMessage(
        "container", 
        "showContainer", 
        Boolean.TRUE
    ) 
) 

aber nur {} wird zurückgegeben.

Wenn ich versuche hinzuzufügen public Vor jeder Mitgliedsvariablen wird dieser Fehler angezeigt:

flexjson.JSONException: Error trying to deepSerialize  
Caused by: java.lang.IllegalAccessException: Class flexjson.BeanProperty can not access a member of class with modifiers "public"

Ich habe versucht, dem zu folgen Beispiel, aber es zeigt nicht wie Person ist konstruiert, und ich weiß nicht, wie man die Klasse zu einem macht static Die innere Klasse wirkt sich darauf aus, da ich noch ziemlich neu in Java bin.

Ich habe auch versucht, alle von Google bereitgestellten Lösungen für diesen Fehler zu lesen, aber immer noch nichts.

Wie kann flexjson.JSONSerializer() Gibt alle Mitgliedsvariablen von a zurück static innere Klasse?

War es hilfreich?

Lösung

aber nur {} wird zurückgegeben.

Scheinbar flexjson verwendet Getter, um JSON-Elemente aufzulösen.Deine Klasse hat keine.

Fügen Sie einfach entsprechende Getter hinzu

public String getType() {
    return type;
}

public String getId() {
    return id;
}

public String getFunction() {
    return function;
}

public Object getParameters() {
    return parameters;
}

Wie für

Wenn ich versuche, public vor jeder Mitgliedsvariablen hinzuzufügen, wird dieser Fehler angezeigt:

Das liegt daran, dass Sie static Die Klasse verfügt über Standardpaketzugriff und ihre Felder sind daher für keine Klasse außerhalb des Pakets sichtbar, in dem sie deklariert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top