gpt4 book ai didi

java - JAX-RS REST 服务返回 boolean 值作为字符串

转载 作者:行者123 更新时间:2023-11-30 05:49:53 25 4
gpt4 key购买 nike

我正在使用 JAX-RS 生成 RESTful 服务。但是,当请求 JSON 时, boolean 值作为带引号的字符串 {"boolValue":"true"} 而不是 boolean 值 {"boolValue":true} 返回。

一个简单的对象

@XmlRootElement
public class JaxBoolTest {
private boolean working;

public boolean isWorking() {
return working;
}

public void setWorking(boolean working) {
this.working = working;
}

}

一个简单的 JAX-RS REST 服务

@Path("/jaxBoolTest")
public class JaxBoolTestResouce {
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public JaxBoolTest getJaxBoolTest() {
JaxBoolTest jbt = new JaxBoolTest();
jbt.setWorking(false);
return jbt;
}
}

结果:

{"working":"false"}

如何获取 boolean 值而不是字符串形式的 boolean 值?

最佳答案

使用 jaxson ( http://jackson.codehaus.org/ ) 序列化开箱即用:

public class BooleanTest {
@Test
public void test() throws Exception{
System.out.println(new ObjectMapper().writeValueAsString(new JaxBoolTest()));
}
}

产生了这个输出:

{"working":false}

我强烈推荐使用 Jackson 来序列化 JSON。它很好用。我过去使用过 Jettison,但遇到了很多问题。您可能必须配置您的 jax-rs 提供程序以使用 jackson,因为它看起来不像已经在使用它。

另一个提示:使用 jackson 时不需要 @XmlRootElement,除非您还想使用相同的 beans 提供 jax-b xml。

关于java - JAX-RS REST 服务返回 boolean 值作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842349/

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