java jackson 將對(duì)象轉(zhuǎn)json時(shí),忽略子對(duì)象的某個(gè)屬性操作
我就廢話不多說了,大家還是直接看代碼吧~
//父對(duì)象
public class user implements java.io.Serializable {
@JsonIgnoreProperties(value={"addressId"})//在解析成json時(shí),忽略子屬性的addressId字段
private Address address;
private String username;
//.........
}
//子對(duì)象
public class Address implements java.io.Serializable {
private int addressId;
private String address;
private String phone;
//..........
}
//注:當(dāng)對(duì)象是hibernate查出來的代理對(duì)象時(shí),一對(duì)多對(duì)象會(huì)給子對(duì)象注入handler和hibernateLazyInitializer屬性,如果給jackson解析就會(huì)報(bào)錯(cuò)
//在一對(duì)多或多對(duì)一字段前加上@JsonIgnoreProperties(value={"handler","hibernateLazyInitializer"})即可
補(bǔ)充知識(shí):SpringMVC 返回實(shí)體對(duì)象時(shí)屏蔽某些屬性
SpringMVC 可以直接已JSON的結(jié)果返回實(shí)體對(duì)象,可是返回時(shí)是所有屬性與屬性值都會(huì)一并返回,
怎樣才能屏蔽某些屬性?方法很簡(jiǎn)單,只要在實(shí)體對(duì)象類中要屏蔽的屬性值上加 @JsonIgnore 注解,如:
@JsonIgnore
private String authorPassword;
屬性即可被屏蔽,就不用擔(dān)心有該屬性與屬性值返回到客戶端了。
另外,如果僅僅從 MyBatis 的 mapper 里面的 select 語句中只選需要的字段而不選需要被屏蔽的字段,
這種方法行不通,因?yàn)樽詈筮€是會(huì)返回所有屬性,只不過未被選中的字段會(huì)有 null 的屬性值。
以上這篇java jackson 將對(duì)象轉(zhuǎn)json時(shí),忽略子對(duì)象的某個(gè)屬性操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java報(bào)錯(cuò):ClassCastException問題解決方法
異常是程序中的一些錯(cuò)誤,但并不是所有的錯(cuò)誤都是異常,并且錯(cuò)誤有時(shí)候是可以避免的,下面這篇文章主要給大家介紹了關(guān)于Java報(bào)錯(cuò):ClassCastException問題解決方法,需要的朋友可以參考下2024-07-07
mybatisplus?@Select注解中拼寫動(dòng)態(tài)sql異常問題的解決
這篇文章主要介紹了mybatisplus?@Select注解中拼寫動(dòng)態(tài)sql異常問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java中ThreadLocal使用原理及Synchronized區(qū)別
ThreadLocal叫做線程變量,本文詳細(xì)的介紹了ThreadLocal使用原理及Synchronized區(qū)別,有需要的朋友可以參考一下,希望對(duì)你有所幫助。2023-05-05
springBoot啟動(dòng)時(shí)讓方法自動(dòng)執(zhí)行的幾種實(shí)現(xiàn)方式
這篇文章主要介紹了springBoot啟動(dòng)時(shí)讓方法自動(dòng)執(zhí)行的幾種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

