-1

我正在使用杰克逊图书馆。我已经添加了依赖项。

这是我到目前为止使用的语法,我已经将一个对象传递给这个名为 result 的方法。

 private void getSampleFromJson(List<SampleProjectDto> result) throws JsonParseException, JsonMappingException, IOException {
  URL url = this.getClass().getResource("/test.json");
  File jsonFile = new File(url.getFile());
  System.out.println("Full path of file: " + jsonFile);

  ObjectMapper mapper = new ObjectMapper();
  InputStream is = Test_Project.class.getResourceAsStream("/test.json");
  SampleDto testObj = mapper.readValue(is, SampleDto.class);
  System.out.println(testObj.getCreatedByUrl());

}

现在我正在阅读的文件,该文件是一个包含 json 的文本文件。我的问题是文件中的很多变量和内容都有下划线,并且是驼峰式的,这导致我的程序无法运行。我能做些什么来不必更改我的整个 json 文件,是否可以输入一种编程方法或语句,让它忽略所有这些标点符号和驼峰式大小写,并使它变得很好,并变成蛇形大小写以使这种方法成为能够工作,所以我的程序?

4

1 回答 1

1

我可能不明白您遇到的具体问题,但是可以按如下方式将 POJO 字段映射到 JSON 属性。

您要么必须使用JsonProperty注释:

class SampleDto{
    @JsonProperty("first_name")  // property name JSON
    protected String firstName;
    protected String getFirstName(){return firstName;}
}

ObjectMapper使用PropertyNamingStrategy配置:

mapper.setPropertyNamingStrategy(
    PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

如果你愿意,你甚至可以实现你自己的PropertyNamingStrategy,这取决于你。

于 2013-09-04T19:26:17.437 回答