una volta ho usato il erlang-json-eep-parser, e l'ho provato sui dati.
7> json_eep:json_to_term("({ id1 : [\"str1\", \"str2\", \"str3\"], id2 : [\"str4\", \"str5\"]})").
** exception error: no match of right hand side value
{error,{1,json_lex2,{illegal,"("}},1}
in function json_eep:json_to_term/1
Giusto, non le piacciono le parentesi.
8> json_eep:json_to_term("{ id1 : [\"str1\", \"str2\", \"str3\"], id2 : [\"str4\", \"str5\"]}").
** exception error: no match of right hand side value
{error,{1,json_lex2,{illegal,"i"}},1}
in function json_eep:json_to_term/1
E non come i tasti non quotate:
18> json_eep:json_to_term("{ \"id1\" : [\"str1\", \"str2\", \"str3\"], \"id2\" : [\"str4\", \"str5\"]}").
{[{<<"id1">>,[<<"str1">>,<<"str2">>,<<"str3">>]},
{<<"id2">>,[<<"str4">>,<<"str5">>]}]}
Questo sembra migliore.
Quindi sembra che i tuoi dati siano quasi JSON, almeno per quanto riguarda questo parser.
Ecco non vero JSON. Le chiavi devono essere citate e non ci dovrebbero essere parentesi intorno ad esso. – cdmckay