2013-09-16 52 views
13

ile seri hale getirme ColdFusion 10 (10,0,11,285437) tarafından serileştirildiğindeolarak döndürülen bir IBM MQ çağrısı aracılığıyla veri ile çalışıyorum geçersiz JSON ve serileştirilemez.JSON ile artı işareti sonuçları JSON

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

Bu isJSON için NO verir ve çalışırken bir hata JSON parsing failure at character 9:'+' in {"prem":+0.0} serisini.

+0 öğesinin tümünü 0 olarak değiştirerek çalışıyorum ancak bunun ColdFusion'da bir hata olduğunu tahmin ediyorum. Başka birinin bu sorunu vardı ve daha iyi bir düzeltme uyguladı mı? Bug #3632972

+0

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

+0

@Henry hata girilen thx https://bugbase.adobe.com/index.cfm?event=bug&id=3632972 –

+9

Kanlı cehennem yerine ... tam olarak ne zaman ColdFusion'ın JSON idaresindeki bu hatalar bitecek? Bence sıfırdan başlamalı ve düzgün bir şekilde yapmalılar. Bunun için oy vereceğim söylemeye gerek yok. CF9 ve CF10, btw'de bozuldu. Ama Railo'da iyi çalışıyor. Ve hatta OpenBD. –

cevap

1

Adobe onların bug database sabit olarak listelenen hata vardır, ancak henüz piyasaya sürülmedi:

Hata raporu yayınlandı. İşte ortaya çıktığım tamir. Basitçe +00 ile

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