2016-12-06 77 views
0

如何將元組轉換爲列表& Atom &將列表中的二進制字符串轉換爲JSON? 我看到Erlang : Tuple List into JSON ,我發現https://github.com/rustyio/BERT-JS將Erlang Tuple編碼爲JSON

我希望有一個API我可以打電話給喜歡

erlang_json:convert([{a, b, {{c, d}}, 1}, {"a", "b", {{cat, dog}}, 2}

其中的原子將被轉換爲字符串或對JavaScript端處理一些其他的標準方式。

我有複雜的Erlang列表需要發送到我的網頁。

回答

3

目前還不清楚[{a, b, {{c, d}}, 1}, {"a", "b", {{cat, dog}}, 2}...會變成JSON,但您可以看看jiffyjsx。他們都在簡單的鍵/值結構上工作。例如:

> Term = #{a => b, c => 1, <<"x">> => <<"y">>}. 
#{a => b,c => 1,<<"x">> => <<"y">>} 

> jiffy:encode(Term). 
<<"{\"x\":\"y\",\"c\":1,\"a\":\"b\"}">> 

> jsx:encode(Term). 
<<"{\"a\":\"b\",\"c\":1,\"x\":\"y\"}">> 

如果你可以說JSON你希望你的例子輸入變成什麼樣,我也許可以給你更好的建議。

+0

要添加到此答案請參閱https://github.com/davisp/jiffy#data-format來查看可以給出正確的json的有效的erlang數據類型。 – boring

+0

謝謝 - 我希望每個原子都可以變成一個字符串,因爲我不認爲JSON中有一種方法可以發送不在字符串中的字符。你的示例代碼看起來是正確的,所以我會接受這一點,我將檢查jiffy&jsx謝謝! – quantumpotato

+0

但是,[JSON](http://www.json.org/)是由鍵/值對組成的。如果你把原子轉換成字符串,你仍然會在erlang中得到類似於「{」a「,」b「,{{」c「,」d「}},1}」的東西。你想要什麼樣的鍵/值對? –

3

只爲你 https://github.com/romanr321/t2j

你並不需要將其包裝在一個列表中,雖然,它需要一個元組的參數和returnes一個JSON字符串格式化。

>Tuple = {{key, value}, { key2, {key3, [value1, 2,3]}}}. 
>t2j:t2jp(Tuple). 
{"key":"value", "key2, {"key3":["value1", 2,3]}}