使用加号序列化JSON会导致无效的JSON

Mat*_*che 13 coldfusion json coldfusion-9 coldfusion-10

我正在通过IBM MQ调用处理数据,其中返回0,因为+0.0当ColdFusion 10(10,0,11,285437)对其进行序列化时,它会导致无效的JSON并且无法反序列化.

stPolicy = { "prem": "+0.0" };
serializedData = serializeJSON(stPolicy);
writeDump(isJSON(serializedData));
writeDump(deserializeJSON(serializedData));
Run Code Online (Sandbox Code Playgroud)

它输出NOisJSON和一个错误,当尝试反序列化JSON parsing failure at character 9:'+' in {"prem":+0.0}.

我可以通过替换所有+0来解决这个问题0,但我猜这是ColdFusion中的一个错误.有没有其他人有这个问题,并实施了更好的解决方案?

提交的错误报告:Bug#3632972

Mat*_*che 1

Adobe 已在其错误数据库中将该错误列为已修复,但尚未发布。这是我想出的修复方法。只需将其替换+00

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