سؤال

أحاول تسلسل هذه الطبقة الداخلية

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;
    }
}

مع

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

لكن فقط {} يتم تجديده.

إذا حاولت إضافة public قبل كل متغير عضو ، فإنه يعطي هذا الخطأ:

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

لقد حاولت متابعة مثال, ، لكنها لا تظهر كيف Person هي التي شيدت ، وأنا لا أعرف كيف جعل الطبقة أ static تؤثر الطبقة الداخلية على هذا لأنني ما زلت جديدا إلى حد ما على جافا.

لقد حاولت أيضا قراءة جميع الحلول المقدمة لهذا الخطأ الذي قدمته جوجل ولكن لا يزال لا شيء.

كيف يمكن flexjson.JSONSerializer() إرجاع كافة المتغيرات عضو من static الطبقة الداخلية?

هل كانت مفيدة؟

المحلول

ولكن فقط {} يتم تجديده.

على ما يبدو flexjson يستخدم حاصل على حل عناصر جسون.صفك ليس لديه أي.

فقط إضافة حاصل المقابلة

public String getType() {
    return type;
}

public String getId() {
    return id;
}

public String getFunction() {
    return function;
}

public Object getParameters() {
    return parameters;
}

أما بالنسبة

إذا حاولت إضافة الجمهور قبل كل متغير عضو ، فإنه يعطي هذا الخطأ:

هذا لأن الخاص بك static الفئة لديها وصول الحزمة الافتراضية وبالتالي فإن حقولها غير مرئية لأي فئة خارج الحزمة المعلنة فيها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top