免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

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

          我們先來看一個例子:

         

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

   輸出:

 

   

Java代碼  
  1. {"s1":{"age":16,"name":"s1"},"s2":{"$ref":"$.s1"}}  

    

 

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

   

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

 

 

     輸出如下:

 

Java代碼  
  1. {"s1":{"age":16,"name":"s1"},"s2":{"age":16,"name":"s1"}}  

 

 

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

     FastJsonHttpMessageConverter

   

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

   

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

 

     

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Fastjson介紹
ECharts Java 動態(tài)加載數(shù)據(jù)
com.alibaba.fastjson.JSONObject之對象與JSON轉(zhuǎn)換方法 目錄
記一次FastJSON:com.alibaba.fastjson.JSONException: syntax error, expect {
fastjson知多少
Json應(yīng)用案例
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服