3

我刚刚切换到 FlexJson,我已经遇到了问题。

http://flexjson.sourceforge.net/上的文档,章节Controlling JSON naming with @JSON状态:

当一个对象被序列化时,JSON 对象的属性名称由 Java 属性的名称确定。这意味着使用 getter 方法的名称或字段名称。但是,有时 JSON 输出与 Java 对象使用的名称不匹配。您可以使用 @JSON 注释来控制它。例如:

    public class Species {
        @JSON(jsonName = "genus")
        private String type;

        private String name;

        @JSON(jsonName="species")
        public String getName() {
           return name;
        }
    }

除非它不起作用。然后他们说:

定义@JSON.jsonName 用于序列化和反序列化。

现在,当我查看http://flexjson.sourceforge.net/javadoc/index.html上的 javadocs 时,我可以看到有 4 个可选元素属于 @JSON 注释,它们是

包括名称 objectFactory 变压器

都不是jsonName,就像在示例中一样。

那么如何让这个注解起作用,这样我就可以有不同的 java 和 json 名称呢?如何定义此注释元素或使用预定义的name

为了澄清,我可以注释@JSON和自动完成推荐@JSON(include),但include无法解决......

我使用的是 FlexJson 2.1,并且我导入了 flexjson.JSON;

顺便说一句,我知道这个答案https://stackoverflow.com/a/8879616/2001247,但这不是我想要的。我想使用注释。

4

1 回答 1

5

您需要使用FlexJson 3.2

问题是,可通过开发人员站点访问的最新 jar 具有 2.1 版本号。但是java doc对应3.2版。
您可以在 maven 存储库中找到 FlexJson 3.2 jar。

于 2014-05-17T02:49:44.610 回答