1

我正在使用readJSONwhich,如果出现错误,将产生Left err. 有时这个错误(一个字符串)包含引号,例如ReferenceError: "JSON" is not defined.我需要用 JSON 字符串返回这个错误,有点像

Left err -> "{ \"error\" : \"The error is: " ++ (show err) ++ "\" }"

(这show是必需的,因为我们处于失败单子中。)

但是当err像上面的例子一样有引号时,这会将 JSON 撕开。如何让这个工作?

(在 PSCI 中,show似乎在转义方面做得很好,例如show "\"foo\""产生 . 的烟花\。但在上面的函数中,不是吗?)

4

2 回答 2

3

purescript-argonaut在这里使用而不是purescript-foreign用于您的用例可能会更好。如果您show使用 argonaut JSON 值,它将用于JSON.stringify生成该值。

于 2016-04-26T15:53:03.153 回答
0

“轻量级”方法是调用Global.Unsafe.unsafeStringify,这只是对 JSON.stringify 的 FFI 调用。如果这种情况更频繁地发生,那么你最好像@gb 所说的那样使用 Argonaut。

于 2016-04-26T18:01:22.597 回答