后端传到前端的json的字符串还是对象?

首先我是出现了Unexpected token o in JSON at position 1的问题,查阅得知这个出现的问题主要是JSON.parse()用于从一个字符串中解析出json对象,如果parse()的参数不是json字符串,报错。

img

后来看到一篇文章将json对象传入stringify()变成json字符串再放入cookie中,然后更改为

img

然后就正常运行了。这个搞了几乎一天,因为我看视频的代码就是未更改前的那样,并没有stringify()之后在放入cookie,如下

img

但是还是照常运行了,后面突然想起来视频中说java没有json对象。所以传到前端的应该是json字符串,如此的话,那就无须再用stringify()将其变成字符串放入cookie中,视频代码就是正确的,我看视频也确实可以运行的。但是我代码和视频一样的确无法运行,必须stringify()之后放入cookie才能正常取得cookie的值。所以就很迷惑,想问下后端传到前端的json是字符串还是对象,又或者是以前是字符串,现在偷偷摸摸改成对象了。

如果你是自己在后端造的json格式的字符串,传来的就是json字符串,如果你引入fastjson或者jackJson依赖,并使用,那么传过来的可能就是json对象,另外如果你使用springboot传递的对象一般都是json对象,如果reutrn返回值是String,那就是字符串

json和页面,本质上都是字符串,只是前端框架或者浏览器根据头或者配置,自己去解析数据了

后端传到前端的json正常是对象或者数组,也可以传符合json规范的字符串数据,前端转换为json对象