gpt4 book ai didi

java - java从postman中发布的URI获取json数据

转载 作者:行者123 更新时间:2023-12-01 09:45:21 25 4
gpt4 key购买 nike

我一直在尝试获取 JSON 数据,但似乎我使用了错误的语法。什么语法是合适的?这是我的代码

@Path("/jsondata")
@POST
@Consumes("application/json")
@Produces("application/json")
public JSONObject personal(@JSONParam("")JSONObject json) throws JSONException{
String name = json.getString("name");
String age = json.getString("age");
String msg = "You entered two things";
String doc = "{\"name\":\""+name+"\",\"age\":\""+age+"\",\"msg\":\""+msg+"\"}";
JSONObject outJson = new JSONObject(doc);

return outJson;
}

@JSONParam 的第五行出现错误。我应该怎么办。如何从 json 中获取姓名和年龄

最佳答案

事实上,任何 JAX-RS 实现都应该能够原生支持 JSON,这样您就应该操作 POJO 而不是 JSON 对象。

  • 当您设置@Consumes("application/json")时,框架知道输入数据为 JSON 格式,因此会将其反序列化为预期的 Java 对象类型。
  • 当您设置@Produces("application/json")时,框架知道结果是JSON格式,因此它将以JSON格式序列化返回的Java对象。

这是来自 this article 的示例

@Path("/json/metallica")
public class JSONService {

@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public Track getTrackInJSON() {
Track track = new Track();
track.setTitle("Enter Sandman");
track.setSinger("Metallica");
return track;
}

@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
public Response createTrackInJSON(Track track) {
String result = "Track saved : " + track;
return Response.status(201).entity(result).build();
}
}

如您所见,getTrackInJSON 使用 @Produces(MediaType.APPLICATION_JSON) 进行注释,这样它就可以返回对象 Track,框架会将其转换为 JSON 格式。

如您所见,createTrackInJSON 使用 @Consumes(MediaType.APPLICATION_JSON) 进行注释,并具有一个 Track 类型的参数,这样框架将解析输入数据,以直接提供 Track 实例作为该方法的参数。

关于java - java从postman中发布的URI获取json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38100060/

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