使用 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.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内部类如何影响这一点,因为我对 Java 还相当陌生。

我也尝试阅读了Google为该错误提供的所有解决方案,但仍然没有任何解决方案。

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

但只有 {} 被重新调整。

显然,flexjson使用getters来解决JSON元素。您的班级没有。

只需添加相应的吸气剂

public String getType() {
    return type;
}
public String getId() {
    return id;
}
public String getFunction() {
    return function;
}
public Object getParameters() {
    return parameters;
}

至于

如果我尝试在每个成员变量之前添加 public,它会给出此错误:

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

相关内容

  • 没有找到相关文章