老师,有个问题?

老师,有个问题?

modelMap.put("success",ture);

modelMap("product",puoduct);

product 是一个对象,问题1:经过@responstBody 处理后,是不是转换成一个json对象,是不是spring 底层实现的功能?

问题2:js中的getjson方法,对数据进行接收,接收的是不是一个json对象?

问题3:从js 中的ajax 交互中,初始化一个var product={} 一个json对象,对数据进行填充后,保存在formant当中的数据,是json product的 stringify 方法生成的字符转对象,从前台传到后台,经过mapper.readvalue()方法,生成对象。问题是,前后台的通信不是json对象吗,怎么变成字符串了?

正在回答

登陆购买课程后可参与讨论,去登陆

5回答

同学你好,@ResponseBody是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。如果是bean对象,会调用对象的getXXX()方法获取属性值并且以键值对的形式进行封装,进而转化为json串。如果是map集合,采用get(key)方式获取value值,然后进行封装。

祝:学习愉快~

好帮手慕阿满 2020-06-07 18:45:16

同学你好,是的。JSON.stringify(product)用于将product转换为 JSON 字符串,然后传递给后台。

祝:学习愉快~

  • 提问者 MAYxDAY #1
    老师,还有个问题,@requestbody的底层是什么?字符串转换成json,然后再转换成对象?装换对象是怎么识别java类型的
    2020-06-07 18:51:58
提问者 MAYxDAY 2020-06-07 16:42:05
好帮手慕阿满 2020-06-07 16:37:15

同学你好,在js文件中,json类型是以字符串的形式显示的,如:

var str1 = '{"width":100,"height":200,"name":"rose"}';

所以称为Json类型的字符串。这里就是指json数据。

祝:学习愉快~

  • 提问者 MAYxDAY #1
    这里不是对JSON进行字符串的转化,然后传回后台,进行数据的读取?
    2020-06-07 16:43:21
好帮手慕阿满 2020-06-07 14:15:05

同学你好,关于同学的问题:

1、是的,@ResponseBody将返回值变成json类型,是底层完成的。

2、$getJson获取的也是json类型数据。

3、这里说的字符串是json类型的字符串。

祝:学习愉快~

  • 提问者 MAYxDAY #1
    问题3:json类型的字符串不是json,而是长得像json的字符串吗?
    2020-06-07 14:42:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师