FlexJson和@JSON注释 - @JSON(name ="")无效

时间:2014-05-06 13:40:19

标签: java annotations flexjson

我刚刚切换到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处的javadoc时,我可以看到有4个可选元素属于@JSON注释,这些是

  

包含名称objectFactory转换器

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

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

为了澄清,我可以注释@JSON并自动填充建议@JSON(include),但无法解析include ...

我正在使用FlexJson 2.1,我导入了flexjson.JSON;

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

1 个答案:

答案 0 :(得分:5)

您需要使用 FlexJson 3.2

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