嵌套对象的 Gson return null

Gson return null for the nested-object

实际上,我尝试在我的代码中实现如此基本的东西。我有一个 json 文件。然后我想读取这个 json 文件并将其转换为 Java 对象。为了处理它,我使用了 gson 但不知何故它 returns null for nested-object.

Json:

{
  "results": {
    "ads-result": {
      "data": [
        {
          "id": "1"
        }
      ]
    }
  }
} 

测试Json:

@Getter
public class TestJson
{
    private ResultsData results;

    @Getter
    public static class ResultsData
    {
        @JsonProperty(value = "ads-result")
        private AdsResultData adsResult;
    }

    @Getter
    public static class AdsResultData
    {
        private List<AdApp> data;
    }

    @Getter
    public static class AdApp
    {
        private long id;
    }
}

最后我尝试从 json 文件中读取它:

public static TestJson getDefaultAdResult() throws Exception
{
    String json = IOUtils.toString(
            getResourceAsStream("test.json"), StandardCharsets.UTF_8);

    return new Gson().fromJson(json, TestJson.class);
}

但最后,当我尝试到达 System.out.println(resultJson.getResults().getAdsResult()); 时,它给出了 null。有什么建议吗?

您正在混合使用 Jackson 和 Gson 注释。

进行此更改:

// @JsonProperty(value = "ads-result") - Jackson
@SerializedName("ads-result") // Gson
private AdsResultData adsResult;