Büyük miktarda json ayrıştırdım, bazı değerleri manipüle ettim ve tekrar yazmak istiyorum. Aeson sayıları bilimsel olarak çözer, ancak bunu kodladığında, bilimsel olarak birçok durumda bilimsel gösterimde sayıları gösterir ve aeson bunu değiştirmek için görebileceğim herhangi bir araç sunmaz.aeson'da, bilimsel göstergeye neden olmadan bir Değerden nasıl kodlarsınız?
> decode "[\"asdf\", 1, 1.0, 1000000000.1, 0.01]" :: Maybe Value
Just (Array [String "asdf",Number 1.0,Number 1.0,Number 1.0000000001e9,Number 1.0e-2])
encode (Array [String "asdf",Number 1.0,Number 1.0,Number 1.0000000001e9,Number 1.0e-2])
"[\"asdf\",1,1,1.0000000001e9,1.0e-2]"
> encode (Array [String "asdf", Number 1, Number 1.0, Number 1000000000.1, Number 0.01])
"[\"asdf\",1,1,1.0000000001e9,1.0e-2]"
Değerlerimi, diğer dillerin kullanabileceği daha yaygın olarak kabul edilebilir bir biçimde sayılarla nasıl yazabilirim? Hassas kayıp veya tamsayı taşmalarıyla ilgilenmediğimi varsayalım. Bilimsel paket, sayıları bu şekilde biçimlendirmek için araçlara sahiptir, aeson sadece onu kullanmamaya başladı.
>formatScientific Fixed Nothing (0.01)
"0.01"
>formatScientific Fixed Nothing (1000000000.1)
"1000000000.1"
Diğer diller bunu tüketemezse, JSON çözümleyicileriyle ilgili bir sorun. [Bilimsel gösterim JSON standardının bir parçasıdır.] (Http://www.json.org/) – Cirdec
Not. Kendi kodlama işlevimi yazmadan bunu yapmanın bir yolu olup olmadığını bilmek isterim. –