我正在编写需要提取发布到servlet的对象文本的代码。我研究了HttpServletRequest对象的API,但我不清楚如何从请求中获取JSON对象,因为它不是从网页上的表单元素发布的。任何见解都是赞赏的。谢谢
n1bvdmb61#
你在找这个吗?
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StringBuilder sb = new StringBuilder(); BufferedReader reader = request.getReader(); try { String line; while ((line = reader.readLine()) != null) { sb.append(line).append('\n'); } } finally { reader.close(); } System.out.println(sb.toString()); }
rkttyhzu2#
使用Java 8 Stream API从HttpServletRequest获取请求数据的简单方法:
HttpServletRequest
String requestData = request.getReader().lines().collect(Collectors.joining());
idv4meu83#
使用JacksonJSON处理器
ObjectMapper mapper = new ObjectMapper(); Book book = mapper.readValue(request.getInputStream(),Book.class);
vq8itlhq4#
最简单的方法是从Reader对象填充bean,这可以在单个调用中完成:
BufferedReader reader = request.getReader(); Gson gson = new Gson(); MyBean myBean = gson.fromJson(reader, MyBean.class);
kzipqqlq5#
还有另一种方法,使用org.apache.commons.io.IOUtils从请求中提取String
org.apache.commons.io.IOUtils
String jsonString = IOUtils.toString(request.getInputStream());
然后你可以做任何你想做的事情,转换成JSON或其他与Gson的对象,等等。
JSON
Gson
JSONObject json = new JSONObject(jsonString); MyObject myObject = new Gson().fromJson(jsonString, MyObject.class);
jgzswidk6#
如果您试图从请求体中获取数据,则上面的代码可以工作。但是,我认为你有同样的问题,我是..如果正文中的数据是JSON形式的,并且您希望它作为Java对象,则需要自己解析它,或者使用google-gson这样的库来处理它。你应该查看项目网站上的文档和示例,以了解如何使用它。很简单。
cclgggtu7#
使用Google-Gson将检索到的数据从请求对象转换为JSON对象,如下所示
Gson gson = new Gson(); ABCClass c1 = gson.fromJson(data, ABCClass.class); //ABC class is a class whose strcuture matches to the data variable retrieved
ohfgkhjo8#
使用以下依赖项
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency>
版本可以是任何最新版本我们可以用下面的代码行处理Json输入
8条答案
按热度按时间n1bvdmb61#
你在找这个吗?
rkttyhzu2#
使用Java 8 Stream API从
HttpServletRequest
获取请求数据的简单方法:idv4meu83#
使用JacksonJSON处理器
vq8itlhq4#
最简单的方法是从Reader对象填充bean,这可以在单个调用中完成:
kzipqqlq5#
还有另一种方法,使用
org.apache.commons.io.IOUtils
从请求中提取String然后你可以做任何你想做的事情,转换成
JSON
或其他与Gson
的对象,等等。jgzswidk6#
如果您试图从请求体中获取数据,则上面的代码可以工作。但是,我认为你有同样的问题,我是..
如果正文中的数据是JSON形式的,并且您希望它作为Java对象,则需要自己解析它,或者使用google-gson这样的库来处理它。你应该查看项目网站上的文档和示例,以了解如何使用它。很简单。
cclgggtu7#
使用Google-Gson将检索到的数据从请求对象转换为JSON对象,如下所示
ohfgkhjo8#
使用以下依赖项
版本可以是任何最新版本
我们可以用下面的代码行处理Json输入