2011-12-23 49 views

回答

2

既然你问了灵感,我能想象,两个方向可以采取

  1. 您可以编写代码,以手的角色你自己的JSON,如果你需要的是足够的谦虚,可以是一个非常轻重量和适当的解决方案。这将是非常简单的Erlang采取一个数据结构并将其转换为JSON。 “{\”id2 \“:2},{\”id3 \“:3},{\”id4 \“:4}],[{ \“id1 \”:5},{\“id3 \”:7},{\“id4 \”:8}]]“

  2. 您可以生成一个数据 - mochiweb的mochijson编码/ 1和解码/ 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的JSON:编码/ 1。下面是一个在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}]] 
+0

谢谢。现在你让我思考。这个数组表示实际上是一个vild JSON文档吗?在我看来,X实际上是几个文件的代表,或者我错了吗? – Andreas 2011-12-23 19:53:21

+0

我相信X是有效的Json,据我所知它是语法(http://www.json.org/),Json可以嵌套 – Jr0 2011-12-23 22:15:44

+0

http://www.json.org有一个语法的可视化版本,它是真正的明确。但是,Json对象绝对可以包含Json对象,就像XML可以包含XML一样 – Jr0 2011-12-23 22:26:41