从编码的JSON响应中去除反斜杠

时间:2016-03-07 14:01:06

标签: json encoding erlang payload

使用erlang构建Json respose。首先,我按术语构造数据,然后使用jsx将其转换为JSON:

Response =  jsx:term_to_json(MealsListResponse),

根据我使用的验证器,响应实际上是有效的JSON:

问题在于解析前端的响应。有没有办法从Erlang侧剥去反斜杠,这样就不会出现在有效负载响应中?

1 个答案:

答案 0 :(得分:1)

反斜杠实际上不是字符串的一部分。它们只是在字符串作为术语打印时使用 - 也就是说,就像在Erlang源文件中编写它一样。这与C和类似语言中的字符串中的字符转义的工作方式相同:在双引号内,应该是字符串一部分的双引号需要使用反斜杠进行转义,但反斜杠实际上不会将其转换为字符串。

要打印不带字符转义的字符串,可以使用~s的{​​{1}}指令:

io:format

如果您通过TCP套接字发送响应,那么您需要做的就是使用适当的Unicode转换将字符串转换为二进制文件。大多数时候你会想要UTF-8,你可以得到它:

io:format("~s~n", [Response]).