gpt4 book ai didi

java - 如何使用 Java 通过 Web 服务以 JSON 格式公开数据?

转载 作者:IT老高 更新时间:2023-10-28 12:55:53 27 4
gpt4 key购买 nike

有没有一种简单的方法可以使用 java 以 JSON 格式将数据返回给 Web 服务客户端?我可以使用 servlet、spring 等。

最佳答案

可能值得研究 Jersey . Jersey 可以轻松地将 restful web 服务公开为 xml 和/或 JSON。

一个例子...从一个简单的类开始

@XmlType(name = "", propOrder = { "id", "text" })
@XmlRootElement(name = "blah")
public class Blah implements Serializable {
private Integer id;
private String text;

public Blah(Integer id, String text) {
this.id = id;
this.text = text;
}

@XmlElement
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }

@XmlElement
public String getText() { return text; }
public void setText(String value) { this.text = value; }
}

然后创建一个资源

@Path("/blah")
public class BlahResource {
private Set<Blah> blahs = new HashSet<Blah>();

@Context
private UriInfo context;

public BlahResource() {
blahs.add(new Blah(1, "blah the first"));
blahs.add(new Blah(2, "blah the second"));
}

@GET
@Path("/{id}")
@ProduceMime({"application/json", "application/xml"})
public Blah getBlah(@PathParam("id") Integer id) {
for (Blah blah : blahs) {
if (blah.getId().equals(id)) {
return blah;
}
}
throw new NotFoundException("not found");
}
}

并暴露它。有很多方法可以做到这一点,例如使用 Jersey 的 ServletContainer。 (web.xml)

<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

这就是你需要做的...弹出浏览器并浏览到http://localhost/blah/1 .默认情况下,您将看到 XML 输出。如果您使用的是 FireFox,请安装 TamperData 并将您的 accept header 更改为 application/json 以查看 JSON 输出。

显然还有更多,但是 Jersey让所有这些事情变得非常容易。

祝你好运!

关于java - 如何使用 Java 通过 Web 服务以 JSON 格式公开数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57689/

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