代码之家  ›  专栏  ›  技术社区  ›  Ben

RestEasy和JSON-如何避免数字周围的引号?

  •  0
  • Ben  · 技术社区  · 15 年前

    我使用RestEasy将实体转换为JSON。这很好,但不知何故,每件事都被表示为一个字符串。例如

    @XmlRootElement(name="TestObject")
    public class TestObject {
        private Long value;
        public Long getValue(){
            return value;
        }
    }
    

    而不是像这样: {TestObject:{value:1234}}

    它创造了 {TestObject:{value:"1234"}} (请注意数字周围的“”)

    所以长值被转换成一个字符串。我怎样才能避免呢?

    似乎没有一个RestEasy论坛,在Seam论坛上没有人能回答我的问题。

    其他人也有同样的问题吗?

    当做

    2 回复  |  直到 13 年前
        1
  •  1
  •   Ben    15 年前

    好吧,问题是RestEasy+Seam在默认情况下使用抛弃(而不是Jackson)。

    jacksonjar实际上并不包含在Seam发行版中,因此您必须下载RestEasy并将所有提到Jackson的jar复制到lib目录中。当RestEasy找到RestEasy杰克逊-提供者.jar在类路径中,将使用Jackson而不是抛弃。

    @XmlTransient . 对杰克逊来说,你必须用 @JsonIgnore

        2
  •  1
  •   Brad Mace Mike King    14 年前

    使用

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jettison-provider</artifactId>
        <version>2.0.1.GA</version>
        <exclusions>
            <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.xml.stream</groupId>
                <artifactId>stax-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>