2013-09-16 5 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)); 

JSON parsing failure at character 9:'+' in {"prem":+0.0}をデシリアライズしようとするとき、これはisJSONとエラーのためNOを出力します。

+00に置き換えてこの問題を回避できますが、これはColdFusionのバグだと思います。他の誰かがこの問題を抱え、より良い修正を実装していますか?

バグレポートが提出された:Bug #3632972

+0

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

+0

@Henryバグが入力されたTHX https://bugbase.adobe.com/index.cfm?event=bug&id=3632972 –

+9

ブラッディ地獄を置き換えます... ColdFusionのJSON処理でこれらのバグはいつ終わるのですか?私は彼らが最初から始める必要があると思うし、それを適切に行う。言うまでもなく、私はこれに投票します。それはCF9とCF10、btwで壊れています。しかし、Railoでうまくいく。さらにOpenBD。 –

答えて

1

Adob​​eはそのbug databaseに固定として記載されているバグを持っていますが、それはまだ発売されていません。ここに私が思いついた修正があります。単に+00

private string function serializeJSONFixCF10(required string serializedData) { 
    return replace(arguments.serializedData,'+0','0','all'); 
} 
関連する問題