Json包可以读取但不能写入理性?
当我尝试用一个浮点数来解码JSON文件时,Text.JSON包将该数字作为JSRational提供给我。因此,我可以在JSRational上执行readJSON。然而,我不会写有理数!这是故意的吗?问题的背景是JSON将浮点类型和整数类型混为一谈——它们不是通过JSON格式的类型标记来区分的。因此,我们在JSON中通过有理数表示所有数值类型 要转换为JSON类型的实例是为Double、Int等提供的,但不是为Rational提供的——尽管实际上没有很好的理由这样做,因为该实例很小:Json包可以读取但不能写入理性?,json,haskell,floating-point,integer,rational-numbers,Json,Haskell,Floating Point,Integer,Rational Numbers,当我尝试用一个浮点数来解码JSON文件时,Text.JSON包将该数字作为JSRational提供给我。因此,我可以在JSRational上执行readJSON。然而,我不会写有理数!这是故意的吗?问题的背景是JSON将浮点类型和整数类型混为一谈——它们不是通过JSON格式的类型标记来区分的。因此,我们在JSON中通过有理数表示所有数值类型 要转换为JSON类型的实例是为Double、Int等提供的,但不是为Rational提供的——尽管实际上没有很好的理由这样做,因为该实例很小: instan
instance JSON Rational where
showJSON r = JSRational True r
readJSON (JSRational _ r) = return r