摘要:然后,斷點看一下轉換的內容,找到看到這里突然想起這個好像前面有遇到過,下面簡單說下產生問題的原因這代表了是一種引用,它是在轉換字符串的時候出現的,在引用了同一對象時出現。
問題產生
最開始問題是在C層的單元測試中產生的:
報錯提示我們說:引用瞬態值,引用之前應該保存一下。
問題解決1.這好說,一看是minMeasureScaleUnit沒有保存,那么保存一下就行了。然而沒有用。
2.既然不起作用,那么說明這是別的方式引起的。斷點調試一下。
發現在模擬發起http請求之前,minMeasureScaleUnit的值是存在的,并且已經保存,但是傳到方法中的時候就出問題了,minMeasureScaleUnit成一個空對象了。這就說明在轉換成json字符串的時候出現問題了。
然后,斷點看一下轉換的內容,找到minMeasureScaleUnit:
看到這里突然想起這個好像前面有遇到過,下面簡單說下產生問題的原因:
$ref這代表了是一種引用,它是FastJson在轉換Json字符串的時候出現的,在引用了同一對象時出現。解決辦法
“$”代表根對象,所以后面就是告訴我們引用了哪個對象。
當后臺接收這種形式的Json對象的時候,并沒有將引用再替換回來,所以minMeasureScaleUnit就不是我們最開始的對象了,也就出現了最開始的沒有保存的問題。
FastJson已經提供給我們了解決辦法,在轉換的時候,添加一個參數SerializerFeature.DisableCircularReferenceDetect,禁用引用就行了:
String jsonObject = JSON.toJSONString(newNonMandatoryInstrument, SerializerFeature.DisableCircularReferenceDetect);總結
這個問題前面的時候遇到過,但是沒有及時的復習,導致這次解決問題的時候又用了不少的時間。
參考鏈接:
https://github.com/json-schem...
https://blog.csdn.net/wxwzy73...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76848.html
數據傳輸使用json格式再方便不過了。fastjson 由阿里巴巴那伙人使用Java語言編寫,號稱最快的JSON庫前兩天遇到一個問題 后臺的數據轉化為json字符串后發送到前臺出現了$ref字樣的東西,后來明白了這是引用,在傳輸的數據中出現相同的對象時,fastjson默認開啟引用檢測將相同的對象寫成引用的形式.說到引用分為兩種,重復引用和循環引用 重復引用 指一個對象重復出現多次 循環引用 指你...
摘要:但是將導入工程后,在使用時會出現等錯誤消息。初步認為是與自帶的沖突。再運行工程,這個錯誤不再出現了,奇跡般的沒問題了。我的理解是這樣,不知道對不對,歡迎大俠指正。工程中下默認的是,而則應該是。所以按照該文的解決方法,更改就好了。 JSON解析庫有很多,諸如Jackson,Json-lib,org.json,Gson和fastjson等,但是fastjson以其解析速度最快而脫穎而出。詳...
摘要:某年某月的某一天,本汪在某個奇葩的公司,接手了某個奇葩的項目,遇到了一些奇葩的事情,就掉進關于做轉換時,那些關于首字符大小寫的坑。坑首字符小寫,第二個字符大寫的鍵名這個坑與相關,嚴格來說,應該是挖的坑。 某年某月的某一天,本汪在某個奇葩的公司,接手了某個奇葩的項目,遇到了一些奇葩的事情,就掉進關于fastjson做bean to json轉換時,那些關于首字符大小寫的坑。 這個奇葩項目...
摘要:而我現在直接返回的是對象。跟進去方法,在最后調用方法將值付給和再回到前面的重寫方法最后返回轉換好的字符串。到這里整個轉換流程就已經結束了。 一、前言 最近老大說要新增一個試用廣告的功能,我巴拉巴拉的從之前推送廣告那里將代碼cv過來,然后跟老大說搞定了!過一會老大說返回的json格式不對!于是乎我瞧了瞧: { adsArea1:{ adsMaterials:[ ...
閱讀 1412·2023-04-26 01:58
閱讀 2289·2021-11-04 16:04
閱讀 1776·2021-08-31 09:42
閱讀 1768·2021-07-25 21:37
閱讀 1069·2019-08-30 15:54
閱讀 2078·2019-08-30 15:53
閱讀 3055·2019-08-29 13:28
閱讀 2693·2019-08-29 10:56