对标上一个随笔,jsp返回数据servlet一直接收不到,最后狠一点直接用流了,中间涉及了很多的转换,以及ContentType的设置都很关键...

本文详细介绍如何使用阿里巴巴的FastJSON结合Servlet实现从前端到后端的数据交互过程,包括设置字符编码、读取请求流、解析JSON对象及转换为List<Map>等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ContentType;

推荐园友的博客:介绍的比较详细:https://www.cnblogs.com/tugenhua0707/p/8975121.html

 

需要使用阿里巴巴的fastjson

servlet流的获取:

response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
// 1.用流的方式将数据从jsp获取 +各种数据类型的转换
  BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(), "utf-8")); // 将数据使用流进行传递
  StringBuffer strb = new StringBuffer();
     String line;
     while ((line = reader.readLine()) != null) { // 遍历数据
     strb = strb.append(line); // 数据暂存StringBuffer
       }

        //转成JSONObject

  JSONObject obj = (JSONObject) JSONObject.parse(strb.toString());

    // 2.JSONObject转String
    String value = obj.toJSONString();
    System.out.println("inputvalue" + value); 

    value = "[" + value + "]";

 

    //3String转listmap   

  // 数据转换为list
  List<Object> getlist = JSON.parseArray(value);
  // 转换listmap使用,最后都存入了这里
  List<Map<String, Object>> getlistvalue = new ArrayList<Map<String, Object>>();
  for (int i = 0; i < getlist.size(); i++) {
    // Map<String,Object> ageMap2 = new HashMap<String,Object>();
    System.out.println("获取的jsp值" + getlist.get(i));
    Map<String, Object> ret2 = (Map<String, Object>) getlist.get(i);// 取出list里面的值转为map
    // 将获取的值成功存入listmap中
    getlistvalue.add(ret2);
  }

 

转载于:https://www.cnblogs.com/liglacier/p/11224368.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值