一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 詳解在springmvc中解決FastJson循環(huán)引用的問題

詳解在springmvc中解決FastJson循環(huán)引用的問題

2020-07-31 15:45asialee Java教程

本篇文章主要介紹了在springmvc中解決FastJson循環(huán)引用的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

我們先來看一個(gè)例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.elong.bms;
 
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
 
import com.alibaba.fastjson.JSON;
 
public class Test {
 public static void main(String[] args) {
 Map<String, Student> maps = new HashMap<String, Student>();
 Student s1 = new Student("s1", 16);
 
 maps.put("s1", s1);
 maps.put("s2", s1);
 
 byte[] bytes = JSON.toJSONBytes(maps);
 
 System.out.println(new String(bytes));
 }
}

輸出:

?
1
{"s1":{"age":16,"name":"s1"},"s2":{"$ref":"$.s1"}}

可以看到,這個(gè)json如果發(fā)到前端是無法使用的,幸好FastJson提供了解決辦法,我們來看下,解決辦法為禁用循環(huán)引用檢測,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.elong.bms;
 
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
 
public class Test {
 public static void main(String[] args) {
 Map<String, Student> maps = new HashMap<String, Student>();
 Student s1 = new Student("s1", 16);
 
 maps.put("s1", s1);
 maps.put("s2", s1);
  
 SerializerFeature feature = SerializerFeature.DisableCircularReferenceDetect;
 
 byte[] bytes = JSON.toJSONBytes(maps,feature);
 
 System.out.println(new String(bytes));
 }
}

輸出如下:

?
1
{"s1":{"age":16,"name":"s1"},"s2":{"age":16,"name":"s1"}}

問題是如果我們在spring mvc中使用的時(shí)候,需要將SerializerFeature注入到MessageConverter里面, FastJsonHttpMessageConverter

但是SerializerFeature是一個(gè)enum類型的,又是一個(gè)array,考慮到大部分人對這個(gè)不熟悉,直接上代碼了。

?
1
2
3
4
5
6
7
8
9
10
11
12
<bean id="jsonConverter"
  class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
  <property name="supportedMediaTypes" value="application/json;charset=UTF-8"/>
  <property name="features">
  <array value-type="com.alibaba.fastjson.serializer.SerializerFeature">
   <value>DisableCircularReferenceDetect</value>
  </array>
  </property>
 </bean>
 <bean id="DisableCircularReferenceDetect" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
  <property name="staticField" value="com.alibaba.fastjson.serializer.SerializerFeature.DisableCircularReferenceDetect"></property>
 </bean>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://asialee.iteye.com/blog/2101915

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩在线成人看片a | 欧美肥乳| 男男调教打屁股 | 农夫成人网| 五月一区二区久久综合天堂 | 四虎色影院 | 关晓彤被草 | 精品国产香蕉 | 全彩孕交漫画福利啪啪吧 | 操破苍穹小说 | 国产福利不卡 | 四虎网址大全 | 四虎tv在线观看884aa | 俄罗斯15一16处交 | 午夜在线观看免费完整直播网 | 91sao国产在线观看 | 国内精品久久久久久久 | 黑人好大好硬好深好爽想要h | japan在线观看 | 毛片免费视频观看 | 99香蕉网 | 国色天香社区在线视频免费观看 | 精品国产91久久久久久久 | 99综合视频 | 四虎在线视频免费观看 | 久久伊人中文字幕有码 | 五月一区二区久久综合天堂 | 四虎精品免费国产成人 | 国产精品亚洲w码日韩中文 国产精品香蕉在线观看不卡 | 动漫美女被褥吸奶漫画漫画 | 成人在线播放视频 | 91麻豆精品国产片在线观看 | 高跟丝袜人妖sissy露出调教 | 天天视频官网天天视频在线 | 果冻传媒在线播放观看228集 | 国产原创一区二区 | 欧美sq| 岛国虐乳紧缚媚药调教 | 亚洲精品丝袜在线一区波多野结衣 | 韩国三级年轻的小婊孑 | 天天操天天爽天天射 |