如何接收前端传来的json数据
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json

·
我是小康小白,一个平平无奇的Java小白。热爱有趣的文字,生活和远方。
从前端获取json格式包的数据,而不是仅仅通过参数来获得
1.第一种使用使用IOUtils的读取包方式
但这种方法需要jar包
阿里巴巴的dubbo jar包,下载路径如下
https://www.jianguoyun.com/p/DVhqYcEQzsO1CBjDp5cD (访问密码 : lnui2s)
import com.alibaba.dubbo.common.utils.IOUtils;、
2.使用使用InputStreamReader对象,获取前端传来的数据字节流然后转化为字符进行操作
这种方法不需要jar包,而且可以设置传入数据的编码方式。
补充
如何使用postman进行对上面的方法进行测试
在向postman中传递参数为Json数据结构有四种方式,比较实用的是通过form-data和通过body中的raw来传递
方法二: body中的raw
(推荐使用这种,可以上传任意格式的文本,可以上传text、json、xml、html等)
1,postman测试的时候,先写你的请求头
一共有四种格式:
咱们用第三种
详细介绍:
2,向body中添加json格式的数据
3.运行idea,然后send,然后就可以或得数据了
Servlet的代码
Servlet源码:
package YunNotes.servlet;
import YunNotes.users_publicnotes.entity.User;
import YunNotes.util.json.JsonChange;
import com.alibaba.dubbo.common.utils.IOUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 响应参数格式设置
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//将此字符串对象输出
PrintWriter out=response.getWriter();
//使用IOUtils的读取包方式
// BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
// String body = IOUtils.read(reader);
//使用InputStreamReader对象,获取前端传来的数据.其中
// request.getInputStream()是读取前端传递来的数据字节流,
// StandardCharsets.UTF_8是将前端传来的数据转化为UTF-8的编码方式
InputStreamReader insr = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8);
StringBuilder body = new StringBuilder();
int respInt = insr.read();
while(respInt!=-1) { // 读取请求数据
//将读取的字节流中的每一个字节转化为字符,然后添加到StringBuilder类型的对象中
body.append((char) respInt);
respInt = insr.read();
}
//out的print方法可以输出对象
out.print(body);
JsonChange jsonChange = new JsonChange();
//将StringBuilder类型的对象的对象通过toString方法转化为String类型,然后用fastjson的json包进行转化
User user = jsonChange.JsonChangeJavaObject(body.toString());
out.write(user.toString());
// out.write(body);
}
如果想对数据进行进一步的操作,可以看看我的另一篇博文




适用于现代 C++ 的 JSON。
最近提交(Master分支:6 个月前 )
51a77f1d
1 天前
756ca22e
1 天前
更多推荐
所有评论(0)