ajax提交用@requstBody解析得不到json

前端的代码
图片说明
ajax提交json数据 这里是用CORS跨域提交的
后台
图片说明
这里用@requestBody 得到json是name=ceshi123 这样的数据,而不是
我想要的是{"name":"ceshi123"} 的json字符串,请问这是为什么,怎么解决?

Pubcli操 Object 改成 String 就可以了

Public object(更换 String) OnlyName( String Json 。。。)

@RequestBody是吧json映射到后面的对象里面去,String换成一个和自定义的Class,public class User{String name;...}就可已自动映射过去,不用转成json串的

方法参数里面感觉@responseBody没什么必要,直接字符串接收就行,你想要json格式,你方法里面那不是已经写了 JSON.parseObject方法吗,这个方法就是将字符串转换为JSONobject对象

如果你返回的是个POJO对象的JSON格式,就不要用Object类型了,直接使用返回的对象POJO的对象,他会自动装换的,但是使用Object就不知道是什么类型了。

在方法上面加@responseBody就行了,参数里面不用加了,然后把返回值换成String,不要用object,然后你再试试

接收的String json修改成Map json类型,这样应该可以,这样就对应了json格式的key-value类型,你这个问题接收不到是因为你接收的类型错误了

将Object改为String,其中用@ResponseBody则返回的是json字符串

是转换的问题,报的错应该的json不能装换为String,7楼的方法可解决问题

你的 userService.onlyUser(name); 的返回值是什么类型的? 返回的结果是什么?
把 onlyName()的返回值类型改为 userService.onlyUser(name) 的返回值类型

1.传参时,后台接收参数是string类型,改造:data:JSON.stringify({"name":"ceshi123"})
  2.后台接收参数时,@RequestBody接收到的是一个对象,不是String参数值,可以用Map接收 改造: @ResquestBody Map<String,Object> json
     //获取name值可以通过   String name=json.get("name").toString();

public Object onlyName(String josn){

}

接收的String json修改成Map json类型,这样应该可以,这样就对应了json格式的key-value类型,你这个问题接收不到是因为你接收的类型错误了
json.parseObject返回的是对象,对象toString返回的是name=ceshi123 这样的格式,因此改变接收类型