将列表转换为erlang中的JSON对象(mochijson)

将列表转换为erlang中的JSON对象(mochijson),json,list,erlang,Json,List,Erlang,我真的很感激任何帮助。 我想转换这个列表 [[{id1,1},{id2,2},{id3,3},{id4,4}],[{id1,5},{id2,6},{id3,7},{id4,8}],[...]] 指向JSON对象。 需要一些灵感:) 请帮忙 谢谢。既然你要求灵感,我可以给你两个方向 您可以编写代码来处理您自己的JSON角色,如果您的需要足够少的话,它可以是一个非常轻量级和合适的解决方案。采用这一数据结构并将其转换为JSON将是非常简单的Erlang “[{“id1\”:1}、{“id2\”:2}

我真的很感激任何帮助。 我想转换这个列表

[[{id1,1},{id2,2},{id3,3},{id4,4}],[{id1,5},{id2,6},{id3,7},{id4,8}],[...]]
指向JSON对象。 需要一些灵感:) 请帮忙


谢谢。

既然你要求灵感,我可以给你两个方向

  • 您可以编写代码来处理您自己的JSON角色,如果您的需要足够少的话,它可以是一个非常轻量级和合适的解决方案。采用这一数据结构并将其转换为JSON将是非常简单的Erlang

    “[{“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(太懒了,看不到文档)

    因此,如果您可以创建这个比您正在使用的稍微复杂的数据结构,那么您可以使用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}]]
    

    非常感谢。现在你让我想起来了。这个数组表示实际上是一个vild JSON文档吗?在我看来,X实际上是一个元组中几个文档的表示,还是我错了?我相信X是有效的Json,因为我理解它的语法()。但是,Json对象绝对可以包含Json对象,就像XML可以包含XMLX是有效的Json字符串一样。如果有疑问,我发现验证+打印JSON字符串非常方便。您可能需要使用mochiweb的mochijson2模块,因为它在erlang端使用了更方便的JSON表示。例如,json数组只是erlang列表,而不是那些笨拙的{array,list()}元组。
    io:format("~s~n",[mochijson:encode(Y)]).
    [[{"id1":1},{"id2":2},{"id3":3},{"id4":4}],[{"id1":5},{"id2":6},{"id3":7},{"id4":8}]]