2013-09-16 23 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'); 
}