@JSONField和@JsonProperty

@JSONField位于alibaba的fastjson中。

JSONObject userJson = JSONObject.parseObject(userString);
   User user = JSON.toJavaObject(userJson,User.class);

@JsonProperty位于jackson中

    // jackson转换工具
    private static final ObjectMapper objectMapper = new ObjectMapper()
            .configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
String str = objectMapper.writeValueAsString(new MessageEntity());
List<String> tidList = objectMapper.readValue(tidListSrt, new TypeReference<List<String>>() {});

各种类型的转换,详情各api

 

这次主要遇到的是对es中的数据直接转对象后,然后将对象返回给调用者,提供给调用者时,需遵循标准的驼峰,而不是ES中的下划线。

对于要封装的实体类,对象属性中,可以使用@JsonPropertity(value=“user_name”)和@JSONField(name ="user_name")将es中的user_name通过fastjson或者jackson直接封装成User对象。其属性userName均是存在值,但是在通过前台接口返回给调用者时,使用@JsonProperty时,给调用者的就是user_name,通过@JSONField注解时,调用者就是标准的userName驼峰格式。

所以在使用这个json转换时,还是要注意区分一下的。。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章