成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

FastJson轉(zhuǎn)換字符串引用相同對象產(chǎn)生的錯(cuò)誤

focusj / 1089人閱讀

摘要:然后,斷點(diǎn)看一下轉(zhuǎn)換的內(nèi)容,找到看到這里突然想起這個(gè)好像前面有遇到過,下面簡單說下產(chǎn)生問題的原因這代表了是一種引用,它是在轉(zhuǎn)換字符串的時(shí)候出現(xiàn)的,在引用了同一對象時(shí)出現(xiàn)。

問題產(chǎn)生

最開始問題是在C層的單元測試中產(chǎn)生的:

報(bào)錯(cuò)提示我們說:引用瞬態(tài)值,引用之前應(yīng)該保存一下。

問題解決

1.這好說,一看是minMeasureScaleUnit沒有保存,那么保存一下就行了。然而沒有用。

2.既然不起作用,那么說明這是別的方式引起的。斷點(diǎn)調(diào)試一下。

發(fā)現(xiàn)在模擬發(fā)起http請求之前,minMeasureScaleUnit的值是存在的,并且已經(jīng)保存,但是傳到方法中的時(shí)候就出問題了,minMeasureScaleUnit成一個(gè)空對象了。這就說明在轉(zhuǎn)換成json字符串的時(shí)候出現(xiàn)問題了。

然后,斷點(diǎn)看一下轉(zhuǎn)換的內(nèi)容,找到minMeasureScaleUnit

看到這里突然想起這個(gè)好像前面有遇到過,下面簡單說下產(chǎn)生問題的原因:

$ref這代表了是一種引用,它是FastJson在轉(zhuǎn)換Json字符串的時(shí)候出現(xiàn)的,在引用了同一對象時(shí)出現(xiàn)。
$”代表根對象,所以后面就是告訴我們引用了哪個(gè)對象。
當(dāng)后臺(tái)接收這種形式的Json對象的時(shí)候,并沒有將引用再替換回來,所以minMeasureScaleUnit就不是我們最開始的對象了,也就出現(xiàn)了最開始的沒有保存的問題。
解決辦法

FastJson已經(jīng)提供給我們了解決辦法,在轉(zhuǎn)換的時(shí)候,添加一個(gè)參數(shù)SerializerFeature.DisableCircularReferenceDetect,禁用引用就行了:

String jsonObject = JSON.toJSONString(newNonMandatoryInstrument, SerializerFeature.DisableCircularReferenceDetect);
總結(jié)

這個(gè)問題前面的時(shí)候遇到過,但是沒有及時(shí)的復(fù)習(xí),導(dǎo)致這次解決問題的時(shí)候又用了不少的時(shí)間。

參考鏈接:
https://github.com/json-schem...
https://blog.csdn.net/wxwzy73...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76848.html

相關(guān)文章

  • fastjson 重復(fù)引用和循環(huán)引用問題

    數(shù)據(jù)傳輸使用json格式再方便不過了。fastjson 由阿里巴巴那伙人使用Java語言編寫,號(hào)稱最快的JSON庫前兩天遇到一個(gè)問題 后臺(tái)的數(shù)據(jù)轉(zhuǎn)化為json字符串后發(fā)送到前臺(tái)出現(xiàn)了$ref字樣的東西,后來明白了這是引用,在傳輸?shù)臄?shù)據(jù)中出現(xiàn)相同的對象時(shí),fastjson默認(rèn)開啟引用檢測將相同的對象寫成引用的形式.說到引用分為兩種,重復(fù)引用和循環(huán)引用 重復(fù)引用 指一個(gè)對象重復(fù)出現(xiàn)多次 循環(huán)引用 指你...

    zeyu 評論0 收藏0
  • Android 使用fastjson找不到fastjson包問題解決方法

    摘要:但是將導(dǎo)入工程后,在使用時(shí)會(huì)出現(xiàn)等錯(cuò)誤消息。初步認(rèn)為是與自帶的沖突。再運(yùn)行工程,這個(gè)錯(cuò)誤不再出現(xiàn)了,奇跡般的沒問題了。我的理解是這樣,不知道對不對,歡迎大俠指正。工程中下默認(rèn)的是,而則應(yīng)該是。所以按照該文的解決方法,更改就好了。 JSON解析庫有很多,諸如Jackson,Json-lib,org.json,Gson和fastjson等,但是fastjson以其解析速度最快而脫穎而出。詳...

    hiYoHoo 評論0 收藏0
  • fastjson轉(zhuǎn)換json時(shí),碰到那些首字母大小寫轉(zhuǎn)換坑!

    摘要:某年某月的某一天,本汪在某個(gè)奇葩的公司,接手了某個(gè)奇葩的項(xiàng)目,遇到了一些奇葩的事情,就掉進(jìn)關(guān)于做轉(zhuǎn)換時(shí),那些關(guān)于首字符大小寫的坑??邮鬃址?,第二個(gè)字符大寫的鍵名這個(gè)坑與相關(guān),嚴(yán)格來說,應(yīng)該是挖的坑。 某年某月的某一天,本汪在某個(gè)奇葩的公司,接手了某個(gè)奇葩的項(xiàng)目,遇到了一些奇葩的事情,就掉進(jìn)關(guān)于fastjson做bean to json轉(zhuǎn)換時(shí),那些關(guān)于首字符大小寫的坑。 這個(gè)奇葩項(xiàng)目...

    tyheist 評論0 收藏0
  • 于一次JSON格式錯(cuò)誤 之 手把手帶你走一波FastJSON對象轉(zhuǎn)成JSON符串流程

    摘要:而我現(xiàn)在直接返回的是對象。跟進(jìn)去方法,在最后調(diào)用方法將值付給和再回到前面的重寫方法最后返回轉(zhuǎn)換好的字符串。到這里整個(gè)轉(zhuǎn)換流程就已經(jīng)結(jié)束了。 一、前言 最近老大說要新增一個(gè)試用廣告的功能,我巴拉巴拉的從之前推送廣告那里將代碼cv過來,然后跟老大說搞定了!過一會(huì)老大說返回的json格式不對!于是乎我瞧了瞧: { adsArea1:{ adsMaterials:[ ...

    leiyi 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<