gpt4 book ai didi

java - 使用 FlexJSON 序列化静态内部类

转载 作者:行者123 更新时间:2023-12-02 06:20:34 26 4
gpt4 key购买 nike

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

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"

我尝试遵循example ,但它没有显示 Person 是如何构造的,而且我不知道使该类成为 static 内部类会如何影响这一点,因为我对它还很陌生Java。

我还尝试阅读 Google 针对该错误提供的所有解决方案,但仍然一无所获。

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

最佳答案

but only {} is retured.

显然 flexjson 使用 getter 来解析 JSON 元素。您的类(class)没有。

只需添加相应的getter即可

public String getType() {
return type;
}

public String getId() {
return id;
}

public String getFunction() {
return function;
}

public Object getParameters() {
return parameters;
}

至于

If I try to add public before each member variable, it gives this error:

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

关于java - 使用 FlexJSON 序列化静态内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21067147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com