当前位置: 首页 > 面试题库 >

如何在Java中将HTTP请求正文转换为JSON对象

任文乐
2023-03-14
问题内容

我正在尝试找到一个Java lib / api,它将允许我将HTTP Request POST主体的内容转换为JSON对象。

理想情况下,我想使用Apache
Sling
库(因为它们自然暴露在我的容器中)。

我找到的最接近org.apache.sling.commons.json.http的文件:将标头转换为JSON。

HTTP Post正文采用以下格式:key1=value1&key2=value2&..&keyn=valueN所以我认为那里有些东西,但是我还没找到。

如果某些东西不存在,我可能只需要使用自定义JSONTokenerorg.apache.sling.commons.json.JSONTokener)即可。有什么想法吗?

谢谢


问题答案:

假设您使用的是HttpServlet和类似json-
simple
的JSON库,则可以执行以下操作:

public JSONObject requestParamsToJSON(ServletRequest req) {
  JSONObject jsonObj = new JSONObject();
  Map<String,String[]> params = req.getParameterMap();
  for (Map.Entry<String,String[]> entry : params.entrySet()) {
    String v[] = entry.getValue();
    Object o = (v.length == 1) ? v[0] : v;
    jsonObj.put(entry.getKey(), o);
  }
  return jsonObj;
}

使用示例用法:

public void doPost(HttpServletRequest req, HttpServletResponse res) {
  JSONObject jsonObj = requestParamsToJSON(req);
  // Now "jsonObj" is populated with the request parameters.
  // e.g. {"key1":"value1", "key2":["value2a", "value2b"], ...}
}


 类似资料:
  • Spring@Request estBody注释自动将JSON请求正文转换为Object。转换过程对我们来说似乎是一个黑匣子。但是,我需要控制转换过程以使我预期的无效输入失败。 请看下面的代码。JSON请求正文包含一个带有大写字母的“id”字符串。当Spring自动将其转换为UUID对象时,就会成功。 但是,我希望这种带有大写字母的输入失败。不知道@Request estBody注释神奇地做了什么

  • 问题内容: 我有以下CURL请求,谁能请我确认subesquest HTTP请求是什么? 会是这样吗? 任何人都可以帮助我将上述curl请求完全转换为httpreq。 提前致谢。 苏维 问题答案: 有很多方法可以实现这一目标。在我看来,以下一项是最简单的,同意它不是很灵活,但是可以工作。

  • 如何将hashmap转换或强制转换为Java中的JSON对象,并再次将JSON对象转换为JSON字符串?

  • 我有课 我有一个JSON请求 我有一个REST API 当我调用此API并可视化此student对象时,这两个字段都有我提供的请求中的值。 我不明白的是: JSON值如何直接映射到学生类对象 是否涉及序列化/反序列化 建构师在学生课堂上有什么重要性吗

  • 所以我有了这个javascript函数,我想把它转换成一个java函数。这是最初的功能: 我正在使用这个库http://kevinsawicki.github.io/http-request/创建http请求,到目前为止,我有以下内容: 我认为我的头球是正确的,我唯一的问题是我的身体有问题。我不理解大部分的请求,因为我现在才刚刚开始学习这个,我很想自己做这个程序,但是我真的被这部分卡住了。另外,我

  • 问题内容: 如何在Java中将hashmap转换或转换为JSON对象,然后再次将JSON对象转换为JSON字符串? 问题答案: 您可以使用: 注意: 这仅适用于 您可以从其文档中获得其他功能 http://stleary.github.io/JSON-java/index.html