我正在使用readJSON
,如果出错,则会产生Left err
。有时这个错误(一个字符串)包含引号,e。 G。 ReferenceError: "JSON" is not defined.
我需要返回包含在JSON字符串中的此错误,有点像
Left err -> "{ \"error\" : \"The error is: " ++ (show err) ++ "\" }"
(需要show
,因为我们处于失败的monad中。)
但是当err
有引号时,如上例所示,这会将JSON分开。如何使这个工作?
(在PSCI中,show
似乎可以很好地逃避事情,例如show "\"foo\""
会产生\
的烟花。但是在上面的函数中,不是吗?)
答案 0 :(得分:3)
您最好在此处使用purescript-argonaut
而不是purescript-foreign
作为用例。如果您show
是一个argonaut JSON值,它将使用JSON.stringify
来生成该值。
答案 1 :(得分:0)
“轻量级”方式是调用Global.Unsafe.unsafeStringify,它只是对JSON.stringify的FFI调用。如果发生这种情况,你会更好地使用Argonaut,就像@gb所说的那样。