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
是如何构造的,我也不知道创建类astatic
内部类是如何影响这一点的,因为我对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
)。你只要知道要找什么就行了。