摘要:然后,斷點(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
數(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)引用 指你...
摘要:但是將導(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以其解析速度最快而脫穎而出。詳...
摘要:某年某月的某一天,本汪在某個(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)目...
摘要:而我現(xiàn)在直接返回的是對象。跟進(jìn)去方法,在最后調(diào)用方法將值付給和再回到前面的重寫方法最后返回轉(zhuǎn)換好的字符串。到這里整個(gè)轉(zhuǎn)換流程就已經(jīng)結(jié)束了。 一、前言 最近老大說要新增一個(gè)試用廣告的功能,我巴拉巴拉的從之前推送廣告那里將代碼cv過來,然后跟老大說搞定了!過一會(huì)老大說返回的json格式不對!于是乎我瞧了瞧: { adsArea1:{ adsMaterials:[ ...
閱讀 1449·2023-04-26 01:58
閱讀 2326·2021-11-04 16:04
閱讀 1810·2021-08-31 09:42
閱讀 1804·2021-07-25 21:37
閱讀 1091·2019-08-30 15:54
閱讀 2120·2019-08-30 15:53
閱讀 3078·2019-08-29 13:28
閱讀 2722·2019-08-29 10:56