2016-03-07 282 views
0

用erlang構建Json respose。首先,我構建方面的數據,然後使用jsx將其轉換爲JSON:從編碼的JSON響應中去除反斜槓

Response = jsx:term_to_json(MealsListResponse), 

響應實際上是根據我使用的驗證有效的JSON:

的問題是分析在迴應時,前端。有沒有辦法從Erlang那邊去掉反斜槓,這樣就不會出現在有效載荷響應上?

回答

1

反斜槓實際上並不是字符串的一部分。當字符串被打印爲一個術語時,它們就被使用了 - 就是說,就像在Erlang源文件中一樣。這與字符在C語言和類似語言中的轉義方式相同:在雙引號內部,應該是字符串一部分的雙引號需要用反斜槓進行轉義,但反斜線實際上並不會將其轉換爲字符串。

要打印字符串沒有字符轉義,您可以使用~s指令io:format:如果你發送了一個TCP套接字響應

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

,所有你需要做的就是將字符串轉換爲二進制與適當的Unicode轉換。大多數時候你會想要UTF-8,你可以得到:

gen_tcp:send(MySocket, unicode:characters_to_binary(Response)).