首页 > 解决方案 > @SerializedName 被忽略

问题描述

我的 Google 云端点在帖子正文中接收到一个对象,当将 JSON 转换为实际的 Java 对象时,大多数字段都留空。似乎端点 API 没有考虑像 @SerializedName 这样的 gson 注释

public class MyObject{

    @SerializedName("production_unit_ID")
    private Long productionUnitId;
    ...
    getters / setters

}

接口:

    @ApiMethod(name = "puMyObject", httpMethod = "put", path = "putMyObject")
        public MyObject putWorkOrder(HttpServletRequest req, MyObject myobj) {

        myobj.getProductionUnitId(); // <-- null

在我的 pom.xml 中,我根据文档的要求添加了以下依赖项:

https://developers.google.com/api-client-library/java/google-http-java-client/app-engine

<dependency>
    <groupId>com.google.http-client</groupId>
    <artifactId>google-http-client</artifactId>
    <version>1.23.0</version>
</dependency>

<dependency>
    <groupId>com.google.http-client</groupId>
    <artifactId>google-http-client-gson</artifactId>
    <version>1.23.0</version>
</dependency>

标签: javagsongoogle-cloud-endpoints

解决方案


Endpoints 在后台不使用 GSON。改用ApiResourceProperty这个。


推荐阅读