Erlangで解析したいJSON文字列があります。ErlangでのJSONの解析
({ id1 : ["str1", "str2", "str3"], id2 : ["str4", "str5"]})
私はmochijson2を見て、他のJSONパーサーのカップルが、私は実際にそれを行う方法を見つけ出すことができませんでした:それは次のようになります。どのような助けが大いに感謝!
Erlangで解析したいJSON文字列があります。ErlangでのJSONの解析
({ id1 : ["str1", "str2", "str3"], id2 : ["str4", "str5"]})
私はmochijson2を見て、他のJSONパーサーのカップルが、私は実際にそれを行う方法を見つけ出すことができませんでした:それは次のようになります。どのような助けが大いに感謝!
私はかつてerlang-json-eep-parserを使用して、データ上でそれを試してみました。
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
右はカッコが好きではありません。
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
そして、それは引用符で囲まれていないキーを好きではない:
18> json_eep:json_to_term("{ \"id1\" : [\"str1\", \"str2\", \"str3\"], \"id2\" : [\"str4\", \"str5\"]}").
{[{<<"id1">>,[<<"str1">>,<<"str2">>,<<"str3">>]},
{<<"id2">>,[<<"str4">>,<<"str5">>]}]}
良く見えます。
あなたのデータはです。少なくとも JSONですが、少なくともこのパーサに関してはそうです。
あなたはhttp://www.json.org/を見ましたか?
または、こちらから「json4erlang」をダウンロード:json-and-json-rpc-for-erlang
あなたはJSONLintバリデータであなたのJSON上で動作することができます:http://www.jsonlint.com/
あなたの入力は非常にJSONではありません - キーは次のように、引用符で囲む必要があります。
{ "id1" : ["str1", "str2", "str3"], "id2" : ["str4", "str5"]}
のために良いErlangのライブラリJSONの操作はjsx
https://www.ietf.org/rfc/rfc4627.txtに従って有効ではありません。あなたはそれを修正したら、ErlangのためのJSONライブラリがたくさんありますが、私のお気に入りは、JSX(https://github.com/talentdeficit/jsx/)です:
MyJSON = { "id1" : ["str1", "str2", "str3"], "id2" : ["str4", "str5"]},
jsx:decode(MyJSON, [return_maps]).
そして、それはあなたのニーズに操作することができるErlangのマップデータ構造を返しますですhttp://learnyousomeerlang.com/maps
真ではないJSON。キーは引用符で囲む必要があり、そのまわりには角括弧は使用しないでください。 – cdmckay