我在Eclipse Java项目的Restful Web服务中实现了以下方法,它只返回一个值,并作为json响应呈现给访问它的客户端。它运作正常。
@GET
@Produces({"application/xml", "application/json"})
@Path("/getname/{userid}/")
public String GetName(@PathParam("userid") String userid) {
String name = "Earthling";
return name ;
}
现在让我们看看多个值。我需要在相同的响应中单独返回3个值,而不为其创建自定义对象。
举个例子,我在我的C#项目中编写了这个场景:
[HttpGet]
[Route("api/getname")]
public IHttpActionResult GetName(string userid) {
String name = "Earthling";
String extraValue = "1";
Boolean anotherValue = false;
return Ok(new {name , extraValue, anotherValue });
}
如何在Java中编写上述C#示例并允许该方法在Restful Web Service中返回3个(不同类型的)对象作为响应?就像我说的,我不想创建一个单独的对象来封装它们。
田田!提问时间:
1)如何在Java中将多个值(String,Boolean等)作为JSON响应返回?
2)我编写的Java方法返回一个String值(第一个例子)。如果我返回3个值,我该如何定义方法?在C#中,我可以简单地使用IHttpActionResult,而不必显式指定对象类型
谢谢
答案 0 :(得分:0)
如果您想在Java中执行此操作,则可以使用javax.ws.rs.core.Response
类。
只需将您想要在响应中返回的所有值包装在单个类中(例如,我将该类命名为“SampleResponse”)
public class SampleResponse {
String name = "Earthling";
String extraValue = "1";
Boolean anotherValue = false;
// getter setter
}
你的方法定义应该是
public Response GetName(@PathParam("userid") String userid) {
return Response.ResponseBuilder.ok(new SampleResponse());}
那应该为你做好工作。