今天打印从@Controller里传进@Service的数据,发现.toJSONString后是null,看了老半天,感觉不是方法的使用问题,也不是没有传递进来,最后发现跟JSONObject就没关系。是Dto的注解@Getter,@Setter没写...难怪我想在别人的代码里,怎么声明了一个类却从未有get/set方法...Java果然博大精深,不能用C的思维去看待啊~
import com.alibaba.fastjson.JSONObject;
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${alibaba.fasterjson.version}</version> </dependency> String body = JSONObject.toJSONString(dto); <!--lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> import lombok.Getter; import lombok.Setter; @Setter @Getter curl --location --request POST 'http://localhost:6667/store' \ --header 'Content-Type: application/json' \ --data-raw '{ "id": 4, "name": "lcsuser3" }' 2020-10-22 17:11:29.218 INFO 30748 --- [nio-6667-exec-2] c.j.hello.controller.HelloController : {"id":4,"name":"lcsuser3"}