【发布时间】:2011-12-23 17:40:41
【问题描述】:
我非常感谢任何帮助。 我想转换这个列表
[[{id1,1},{id2,2},{id3,3},{id4,4}],[{id1,5},{id2,6},{id3,7},{id4,8}],[...]]
到一个 JSON 对象。 需要一些灵感:) 请帮忙。
谢谢。
【问题讨论】:
我非常感谢任何帮助。 我想转换这个列表
[[{id1,1},{id2,2},{id3,3},{id4,4}],[{id1,5},{id2,6},{id3,7},{id4,8}],[...]]
到一个 JSON 对象。 需要一些灵感:) 请帮忙。
谢谢。
【问题讨论】:
既然你要求灵感,我可以想象你可以采取的两个方向
您可以编写代码来手动处理您自己的 JSON,如果您的需求足够适中,这可能是一个非常轻量级且合适的解决方案。 Erlang 采用这种数据结构并将其转换为 JSON 是非常简单的。
"[[{\"id1\":1},{\"id2\":2},{\"id3\":3},{\"id4\":4}],[{\ "id1\":5},{\"id2\":6} {\"id3\":7},{\"id4\":8}]]"
您可以生成 mochiweb 的 mochijson:encode/1 和 decode/1 可以处理的数据结构。我拿了你的清单并将其手动编码为 JSON,得到:
X = "[[{\"id1\":1},{\"id2\":2},{\"id3\":3},{\"id4\":4}],[ {\"id1\":5},{\"id2\":6},{\"id3\":7},{\"id4\":8}]]"。
然后我使用 mochison:decode(X) 来查看 mochiweb 使用什么结构来表示 JSON(懒得看文档)。
Y = mochijson:decode(X).
{array,[{array,[{struct,[{"id1",1}]},
{struct,[{"id2",2}]},
{struct,[{"id3",3}]},
{struct,[{"id4",4}]}]},
{array,[{struct,[{"id1",5}]},
{struct,[{"id2",6}]},
{struct,[{"id3",7}]},
{struct,[{"id4",8}]}]}]}
因此,如果您可以创建比您正在使用的数据结构更精细的数据结构,那么您可以使用 mochijson:encode/1 获取 JSON。这是一个嵌入 io:format 语句中的示例,以便将其打印为字符串 - 通常您会根据您的应用程序使用 io_lib:format/X。
io:format("~s~n",[mochijson:encode(Y)]).
[[{"id1":1},{"id2":2},{"id3":3},{"id4":4}],[{"id1":5},{"id2":6},{"id3":7},{"id4":8}]]
【讨论】: