Java 使用FlexJSON序列化静态内部类

Java 使用FlexJSON序列化静态内部类,java,class,serialization,inner-classes,flexjson,Java,Class,Serialization,Inner Classes,Flexjson,我正在尝试序列化这个内部类 static class functionMessage{ String type = "function"; String id; String function; Object parameters; public functionMessage(String ID, String Function, Boolean Parameters) { this.id = ID; this.func

我正在尝试序列化这个内部类

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

但是只返回
{}

如果我尝试在每个成员变量之前添加
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
是如何构造的,我也不知道创建类a
static
内部类是如何影响这一点的,因为我对Java还是相当陌生的

我也试着阅读了谷歌提供的所有错误解决方案,但仍然一无所获

flexjson.JSONSerializer()
如何返回
static
内部类的所有成员变量

但只有{}被返回

显然,
flexjson
使用getter解析JSON元素。你们班没有

只需添加相应的getter

public String getType() {
    return type;
}

public String getId() {
    return id;
}

public String getFunction() {
    return function;
}

public Object getParameters() {
    return parameters;
}
至于

如果我尝试在每个成员变量之前添加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"

这是因为您的
static
类具有默认的包访问权限,因此其字段对于其声明的包之外的任何类都不可见。

Genius!非常感谢你!很抱歉用noob问题污染了这个网站,但是我对Java还是太陌生了,我自己也不能一瘸一拐地解决这些问题。总有一天我会很好地掌握这门很棒的语言@格雷库斯:这并不明显。一些JSON解析器/生成器使用字段本身来序列化对象
flexjson
决定使用mutator/accessor(比如
jackson
)。你只要知道要找什么就行了。