2009-07-01 14 views
14

मेरे पास JSON स्ट्रिंग का एक टुकड़ा है, जिसे मैं एरलांग में पार्स करना चाहता हूं। ऐसा लगता है कि:एरलांग में JSON पार्सिंग

({ id1 : ["str1", "str2", "str3"], id2 : ["str4", "str5"]}) 

मैं mochijson2 को देखा, और अन्य JSON पारसर्स के एक जोड़े, लेकिन मैं वास्तव में यह कैसे करना है यह पता लगाने नहीं कर सका। किसी भी मदद की बहुत सराहना की!

+9

है कि सही JSON नहीं है। चाबियों को उद्धृत करने की आवश्यकता है और इसके चारों ओर कोई ब्रैकेट नहीं होना चाहिए। – cdmckay

उत्तर

14

मैं एक बार 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 है, कम से कम जहां तक ​​इस पार्सर का संबंध है।

0

क्या आपने http://www.json.org/ पर देखा है?

या यहां से "json4erlang" डाउनलोड: json-and-json-rpc-for-erlang

+0

क्षमा करें मुझे लगता है कि एरलांग-जेसन-पार्सर "सेवा अस्थायी रूप से अनुपलब्ध है" – Blauohr

+0

हां, मैंने आरएफसी 4627 कार्यान्वयन देखा, लेकिन जब मैं उपरोक्त स्ट्रिंग को डीकोड() फ़ंक्शन में इनपुट के रूप में पास करता हूं, तो मुझे "बैजर" त्रुटि मिल रही है। .. – thomas55

0

आपका इनपुट काफी JSON नहीं है - चाबियाँ, उद्धृत किया जाना करने के लिए इस तरह की जरूरत है:

{ "id1" : ["str1", "str2", "str3"], "id2" : ["str4", "str5"]} 

के लिए एक अच्छा Erlang पुस्तकालय जेएसओएन में हेरफेरिंग jsx

0

आपकी JSON कुंजी 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

संबंधित मुद्दे