많은 양의 json을 파싱하고 일부 값을 조작했으며이를 다시 작성하고 싶습니다. Aeson은 숫자를 과학적으로 디코딩하지만, 기본적으로 인코딩 할 때 과학적 표기법으로 숫자가 표시되는 경우가 많으며 aeson에서는이를 변경할 수있는 방법을 제공하지 않습니다.aeson에서 과학 표기법을 사용하지 않고 어떻게 값을 인코딩합니까?
> 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]"
다른 언어가 사용할 수있는보다 광범위한 형식의 숫자로 내 값을 쓸 수있는 방법은 무엇입니까? 정밀도 손실이나 정수 오버 플로우에 관심이 없다고 가정 해 봅시다. 과학적인 패키지에는 이런 방식으로 숫자의 서식을 지정하는 수단이 있습니다.
>formatScientific Fixed Nothing (0.01)
"0.01"
>formatScientific Fixed Nothing (1000000000.1)
"1000000000.1"
다른 언어에서는 사용할 수 없으면 JSON 파서에 문제가 있습니다. [과학적 표기법은 JSON 표준의 일부입니다.] (http://www.json.org/) – Cirdec
Noted. 나는 여전히 내 자신의 encode 함수를 작성하지 않고 그것을 할 수있는 방법이 있는지 알고 싶다. –