解決使用fastJson中出現 ref問題

2021-07-14 05:41:18 字數 2470 閱讀 6830

首先:

部門與組織是manytoone和onetomany的關係,並且兩張表都有自關聯,查詢部門資訊時會級聯查詢上級部門以及他的組織結構,然後返回json資料時,會出現$ref

即:

為了攻破它,在兩張表的onetomany那方,也就是set的那方,加乙個fastjson的註解@jsonfield(serialize = false)

即:

由於我組織結構那裡有多個onetomany,所以我都加上了:

然後在controller裡面有兩種寫法:

一:在方法前面加 @responsebody,再直接返回乙個物件

/**

* 部門資訊列表展示

然後在配置檔案裡配置:

在使用spring注入時,我們將類資訊注入到com.alibaba.fastjson.support.spring.fastjsonhttpmessageconverter

這個類中。

在原始碼中可以看到:

我們使用@responsebody這個註解時,會自動呼叫json.tojsonstring(obj,features)這個方法,裡面會帶上我們在spring裡面配置的屬性。

附一種不好的程式設計習慣:

在加了@responsebody註解的controller中使用

string result = json.tojsonstring(obj);

return result;

json.tojsonstring() 這句話執行了兩次。

方案二:不用配置檔案,直接轉serializerfeature.disablecircularreferencedetect

即:

/**

* 部門資訊列表展示

然後ajaxjson方法是:

@controller

public

class

basecontroller

catch (ioexception e)

return

null;

}

解決sqoop中出現的某些問題

我本人用導sqoop去匯入mysql資料並存到hdfs上,安裝過程中 使用這篇部落格來進行安裝,解決方法也很簡單 把sqoop bin configure sqoop裡面的如下兩段內容注釋掉就可以了。指令如下 sqoop import connect jdbc mysql username root...

解決web中出現大量TIME WAIT問題

新增的一組apache伺服器上線以來,我用netstat an命令發現伺服器中有大量狀態為time wait的tcp連線,於是用 sbin sysctl a檢視了一下linux的各項核心引數,並翻閱有關資料,決定修改其中的兩項引數,以達到減少tcp連線中time wait sockets的目的。vi...

解決web中出現大量TIME WAIT問題

新增的一組apache伺服器上線以來,我用netstat an命令發現伺服器中有大量狀態為time wait的tcp連線,於是用 sbin sysctl a檢視了一下linux的各項核心引數,並翻閱有關資料,決定修改其中的兩項引數,以達到減少tcp連線中time wait sockets的目的。vi...