2013-09-16 24 views
13

我通過IBM MQ調用在當這是由ColdFusion的10(10,0,11,285437)序列化,返回0作爲+0.0處理數據它會導致無效JSON並且不能被反序列化。JSON序列化與加號無效JSON結果

stPolicy = { "prem": "+0.0" }; 
serializedData = serializeJSON(stPolicy); 
writeDump(isJSON(serializedData)); 
writeDump(deserializeJSON(serializedData)); 

此輸出NOisJSON並試圖當錯誤反序列化JSON parsing failure at character 9:'+' in {"prem":+0.0}

我能夠通過替換所有+00解決此問題,但我猜這是ColdFusion中的一個錯誤。有沒有其他人有這個問題,並實施更好的解決?

錯誤報告提交:Bug #3632972

+0

https://bugbase.adobe.com/ THX – Henry

+0

@Henry錯誤進入https://bugbase.adobe.com/index.cfm?event=bug&id=3632972 –

+9

該死......什麼時候將所有這些錯誤在ColdFusion的JSON處置結束?我認爲他們需要從頭開始與正確做到這一點。不用說我會爲此投票。它是上破CF9和CF10,順便說一句。但在Railo上運行良好。甚至OpenBD。 –

回答

1

Adob​​e公司列爲固定在其bug database的bug,但尚未公佈。這是我想出的修復。只需更換+00

private string function serializeJSONFixCF10(required string serializedData) { 
    return replace(arguments.serializedData,'+0','0','all'); 
}