有没有更好的方法来优化代码,从请求体中取出一个值,数据进来,格式为 json
Is there a better way to Optimize code that takes one value out of a Request body, the data comes in, in json format
我有一个包含大量数据的请求对象。但是我的代码中有一个过滤器,我只需要取出一个元素。目前我正在反序列化整个对象,只获取一个元素似乎有点过分了
这是 zuul 过滤器的一部分
import com.netflix.zuul.context.RequestContext;
RequestContext ct = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
ObjectMapper mapper = new ObjectMapper();
ServletInputStream stream = null;
try {
stream = request.getInputStream();
GetPageRequest page = mapper.readValue(stream,GetPageRequest.class);
log.info("URL IN BODY "+page.getUrl());
反序列化整个对象以获取一个元素似乎太过分了,但我想不出更有效和优化的方法
最简单的请求负载可以只是一个字符串,这样您就可以将输入读取为一个字符串,然后使用正则表达式或 indexOf
或任何最适合的方式解析您想要的内容?
谢谢大家。我创建了这个方法。将输入流流式传输到字符串中创建了一个 JSONObject,它接收并标记字符串
private String getURLFromRequest(ServletInputStream stream) throws IOException, JSONException {
String requestStr = IOUtils.toString(stream, "UTF-8");
JSONObject jsonObj = new JSONObject(requestStr);
return (String) jsonObj.get("url");
}
我有一个包含大量数据的请求对象。但是我的代码中有一个过滤器,我只需要取出一个元素。目前我正在反序列化整个对象,只获取一个元素似乎有点过分了
这是 zuul 过滤器的一部分
import com.netflix.zuul.context.RequestContext;
RequestContext ct = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
ObjectMapper mapper = new ObjectMapper();
ServletInputStream stream = null;
try {
stream = request.getInputStream();
GetPageRequest page = mapper.readValue(stream,GetPageRequest.class);
log.info("URL IN BODY "+page.getUrl());
反序列化整个对象以获取一个元素似乎太过分了,但我想不出更有效和优化的方法
最简单的请求负载可以只是一个字符串,这样您就可以将输入读取为一个字符串,然后使用正则表达式或 indexOf
或任何最适合的方式解析您想要的内容?
谢谢大家。我创建了这个方法。将输入流流式传输到字符串中创建了一个 JSONObject,它接收并标记字符串
private String getURLFromRequest(ServletInputStream stream) throws IOException, JSONException {
String requestStr = IOUtils.toString(stream, "UTF-8");
JSONObject jsonObj = new JSONObject(requestStr);
return (String) jsonObj.get("url");
}