记录一下jsp接收json参数

、、、最近入了泛微OA开发的大坑,全是jsp

那么怎么实现json前后端交互呢

//前端普普通通 jq ajax
$.ajax({
		type: "POST",
		url: "/hq/pages/fksplc/fksplc.jsp?a=123",
		contentType: "application/json",  //一定要加,
		dataType:"json", //一定要加 血的教训
		data:JSON.stringify(jsonArr),
		success:function(data){
			console.log(data);
		}
});

后端也是jsp哈哈哈,禁止套娃~~~

<%@ page import="java.io.*" %>
<%@ page import="org.apache.commons.io.IOUtils" %>
<%@ page import="java.util.Map" %>
<%@ page import="com.alibaba.fastjson.JSON" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.alibaba.fastjson.TypeReference" %>
<%@ page import="org.springframework.util.CollectionUtils" %>
<%@ page import="java.math.BigDecimal" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="net.sf.json.JSONObject" %>
<%@ page import="java.text.DecimalFormat" %>
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%
String data="";
try {
    InputStream is= null;
    is = request.getInputStream();
    data = IOUtils.toString(is, "utf-8");
}catch (Exception e){
	log.log(e.getMessage());//此处自己打日志
}
//解析成list
ArrayList<Map<String,String>> list  =
            JSON.parseObject(data, new TypeReference<ArrayList<Map<String,String>>>(){});
/**
省略业务逻辑
**/
String result="";//返回给前端的json格式字符串
response.setContentType("application/json; charset=utf-8");
response.getWriter().write(result.toString());
response.getWriter().flush();
response.getWriter().close();
%>

好啦,这样就完成了前后端json交互了,jsp本质是servlet嘛,没有@ResquestBody注解咱照样玩的转~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
JSP 中获取 JSON 数据可以通过以下步骤完成: 1. 导入必要的包: ```java <%@ page import="java.io.BufferedReader" %> <%@ page import="java.io.InputStreamReader" %> <%@ page import="java.net.URL" %> <%@ page import="java.net.HttpURLConnection" %> ``` 2. 建立与 JSON 数据源的连接: ```java String urlStr = "https://example.com/data.json"; // JSON 数据源的 URL URL url = new URL(urlStr); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.connect(); ``` 3. 读取返回的 JSON 数据: ```java BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuilder jsonStr = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { jsonStr.append(line); } reader.close(); connection.disconnect(); ``` 4. 解析 JSON 数据: 使用 JSON 解析库(如 Jackson、Gson 等)将获取到的 JSON 字符串解析为 Java 对象或者集合,以便在 JSP 中使用。 以下是一个简单示例,使用 Gson 库将 JSON 字符串解析为 Java 对象: ```java <%@ page import="com.google.gson.Gson" %> <%@ page import="com.example.DataModel" %> <!-- 示例中的 DataModel 是自定义的 Java 类,根据实际情况修改 --> <% String urlStr = "https://example.com/data.json"; // JSON 数据源的 URL URL url = new URL(urlStr); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.connect(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuilder jsonStr = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { jsonStr.append(line); } reader.close(); connection.disconnect(); Gson gson = new Gson(); DataModel data = gson.fromJson(jsonStr.toString(), DataModel.class); %> ``` 在上述示例中,`DataModel` 是一个自定义的 Java 类,用于映射 JSON 数据的结构。你需要根据实际情况修改 `DataModel` 类的定义以适应你的 JSON 数据结构。 完成以上步骤后,`data` 对象将包含从 JSON 数据源中获取的数据,你可以在 JSP 页面中使用它进行展示或其他操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值