如何使用mochijson编码对象数组?

时间:2012-03-07 22:25:55

标签: json erlang mochiweb

我有两个对象,我想捆绑并运送到一个数组中,用mochijson编码为JSON。他们是:

> Book0 = {struct, [{"title", "a book"}, {"id", "1"}]}.      
> Book1 = {struct, [{"title", "another book"}, {"id", "2"}]}.

然而,

> mochijson:encode({struct, [{"books", [Book0, Book1]}]}).
** exception exit: {json_encode,{bad_char,{struct,[{"title","a book"},
                                                   {"id","1"}]}}}
     in function  mochijson:json_encode_string_unicode_1/1 (src/mochijson.erl, line 203)
     in call from mochijson:json_encode_string_unicode/1 (src/mochijson.erl, line 190)
     in call from mochijson:'-json_encode_proplist/2-fun-0-'/3 (src/mochijson.erl, line 151)
     in call from lists:foldl/3 (lists.erl, line 1197)
     in call from mochijson:json_encode_proplist/2 (src/mochijson.erl, line 154)

如何为mochijson构建数据?我知道这个article但遗憾的是,它不包括对象数组。

3 个答案:

答案 0 :(得分:4)

  

mochijson:encode({struct,[{“books”,{ array ,[Book0,Book1]}}]})。

[123,"\"books\"",58,
 [91,
  [123,"\"title\"",58,"\"a book\"",44,"\"id\"",58,"\"1\"",125],
  44,
  [123,"\"title\"",58,"\"another book\"",44,"\"id\"",58,
   "\"2\"",125],
  93],
 125]

但普遍的共识确实似乎是:“使用mochijson2”(无论是否有array,这都适用于两种情况。)

答案 1 :(得分:2)

在一些消息来源潜水之后,最好的答案是:更喜欢mochijson2,除非你有充分的理由不这样做。

答案 2 :(得分:1)

mochijson2也比mochijson快。