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

时间:2013-09-16 17:06:25

标签: json coldfusion 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));

这会为NO输出isJSON,并在尝试反序列化JSON parsing failure at character 9:'+' in {"prem":+0.0}时出错。

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

提交错误报告:Bug #3632972

1 个答案:

答案 0 :(得分:1)

Adob​​e在其bug database中列出了已修复的错误,但尚未发布。这是我提出的解决方案。只需将+0替换为0

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