मेरे पास एक जावा हैशपॉप है जो मेरे पास है जॉबी में, मैं इसे JSON में बदलने की कोशिश कर रहा हूं, लेकिन इसका सही रूप से रूपांतरण नहीं हो रहा है, मुझे लगता है कि यह उदाहरण समस्या दिखाता है:
$ irb [17:23:50]
irb(main):001:0> require "java"
=> false
irb(main):003:0> require "json"
=> true
irb(main):005:0> h = java.util.HashMap.new()
=> {}
irb(main):006:0> x = {}
=> {}
irb(main):007:0> JSON.parse JSON.dump x
=> {}
irb(main):008:0> JSON.parse JSON.dump h
JSON::ParserError: unexpected token at ""{}""
from json/ext/Parser.java:251:in `parse"
from /Users/kimptoc/.rvm/rubies/jruby-1.7.3/lib/ruby/1.9/json/common.rb:155:in `parse"
from (irb):9:in `evaluate"
from org/jruby/RubyKernel.java:1066:in `eval"
from org/jruby/RubyKernel.java:1409:in `loop"
from org/jruby/RubyKernel.java:1174:in `catch"
from org/jruby/RubyKernel.java:1174:in `catch"
from /Users/kimptoc/.rvm/rubies/jruby-1.7.3/bin/irb:13:in `(root)"
irb(main):010:0> JSON.dump h
=> ""{}""
इसे संभालने के बारे में कोई विचार - क्या मुझे मानचित्र को रूबी मानचित्र में बदलने की आवश्यकता है?
धन्यवाद, क्रिस
उत्तर:
उत्तर № 1 के लिए 4वर्तमान में, ऐसा लगता है कि आप सही हैं और json
मणि doesn "टी समर्थन करते हैं HashMap
, तो एक ही रास्ता वास्तव में रूबी में बदलने के लिए है:
> JSON.parse JSON.dump h.to_hash
=> {}
यह एक खोलने लायक हो सकता है टिकट.
जवाब के लिए 2 № 2
मैं एक ही समस्या है, लेकिन to_hash workaround doesn "t काम जब जावा ऑब्जेक्ट नेस्टेड है, देखें सार.
मैं इसे jjjackson मणि के साथ काम करने में सक्षम था, और एक विशिष्ट कार्यान्वयन में निर्भरता से बचने के लिए multi_json में चला गया।
मैंने JRuby में एक मुद्दा खोला https://github.com/jruby/jruby/issues/1931