今天打印从@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"}