如上所问 :
之所以会有这样的的疑问是因为:
java中我把一个对象变成了JSON字符串发送出去了。
然后前端拿到我这个东西,但是我在前端打印这个东西,在控制台看,发现他能展开!
那就说明现在这个东西已经不是个字符串了,而是个json对象!
那我的疑惑就来了,我发出去的是字符串,你接受的应该也是啊!
为什么我从前端拿到,打印出来,却是js对象,不应该拿到的也是json字符串吗
按理说我应该手动把这个JSON字符串转换成js对象才能使用这个对象里的其他属性啊这些的
那为啥我直接打印出来,就是一个js对象,是什么时候进行偷偷转换了?
这个要看你怎么理解了。
1.理论上后端发给前端浏览器的东西 都是字符串。或者说都是文本。没有对象,没有整数,{},123都是文本字符串。
2.后端发给前端JSON对象,之所以叫对象是因为 不是普通的文本 是可以解析为对象的特殊文本。比如json格式的字符串,这里还有一个重要的设置,如果后端发给前端都是 '{"a":123}'这个字符串的话,响应头header 里 content-type的值决定浏览器解析为json对象还是普通字符串。
content-type:application/json 的值 , '{"a":123}'就会被浏览器解析为json对象了