使用com.alibaba.fastjson.JSON中JSON.parseObject方法将参数转为对象失败,BufferedReader中使用readLine获取某个参数失败

问题描述

前端

前端通过post方式提交了对象

{
    "isTop": 0,
    "img_title": "撒打发士大夫",
    "author": "阿发送达方式大",
    "title": "按时发大水",
    "img_src": "files\\addIndexBanner\\2023-05-20\\20230520115853874.jpg",
    "content": "<p>发沙发撒地方</p>",
    "releaseDateTem": "2023-05-20 11:58:57",
    "status": "1"
}

后端

后端通过使用BufferedReader 的readLine方法将参数读取,并调用JSON.parseObject方法将其解析为Banner类型的对象

 BufferedReader br = req.getReader();
 String params = br.readLine(); //json字符串
 //转为Brand对象
 Banner banner = JSON.parseObject(params, Banner.class);

错误

  1. 后端的params 可能根本拿不到,全部参数为空
  2. 后端的params 中部分字段为null,拿不到

解决

下面两项依次检查

如果全部字段为空

前端需要将JSON转为JSON字符串

	var myData = {
		//是否置顶,默认否,0
		isTop:0,
	};
	myData.img_title = $("#img_title").val();
	myData.author = $("#author").val();
	myData.title = $("#title").val();
	myData.img_src = $("#imgSrc").val();
	myData.content = content;
	myData.releaseDateTem = $("#releaseDateTem").val();
	// 0 草稿,1发布
	myData.status = type;
	console.log(myData);
	x = JSON.stringify(myData)

注意 x = JSON.stringify(myData),此时你在提交x即可

如果部分字段为空

你需要检查你的pojo类,按照我上面的代码来说,应该检查Banner类,看看类中是否给所有的字段都生成了setter和getter,一般是有的字段没有生成造成的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值