मैं कुछ कोड चलाने की कोशिश कर रहा हूं जो उबंटू 16.04 पर रूबी (संस्करण 2.1.4, क्या यह बहुत पुराना है?) का उपयोग करता है।

ऐसा लगता है कि यह एक साधारण JSON स्ट्रिंग को पार्स करने के लिए संघर्ष कर रहा है, शायद मेरी स्थापना में कुछ गड़बड़ है:

require 'rubygems'
require 'json'

string='{foo:{"bar":"foobar"}}'
parsed = JSON.parse(string)
p parsed["foo"]["bar"]

मुझे यह त्रुटि मिलती है:

/home/avilella/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/json/common.rb:155:in `parse': 757: unexpected token at '{foo:{"bar":"foobar"}}' (JSON::ParserError)
    from /home/avilella/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/json/common.rb:155:in `parse'
    from example_json.rb:5:in `<main>'

कोई विचार?

-1
719016 22 अगस्त 2019, 11:49

2 जवाब

सबसे बढ़िया उत्तर

foo को उद्धरणों में रखें:

JSON.parse('{"foo":{"bar":"foobar"}}')
# => {"foo"=>{"bar"=>"foobar"}}
3
mrzasa 22 अगस्त 2019, 11:51

ऐसा लगता है कि यह एक साधारण JSON स्ट्रिंग को पार्स करने के लिए संघर्ष कर रहा है, शायद मेरी स्थापना में कुछ गड़बड़ है:

आपकी स्थापना में कुछ भी गलत नहीं है। आपकी "सरल JSON स्ट्रिंग" केवल JSON स्ट्रिंग नहीं है।

JSON पार्सर आपकी स्ट्रिंग को पार्स करने में विफल हो रहा है क्योंकि आपकी स्ट्रिंग मान्य JSON नहीं है। दूसरे शब्दों में: स्ट्रिंग को अस्वीकार करने में पार्सर पूरी तरह से सही है।

1
Jörg W Mittag 22 अगस्त 2019, 12:40