我有以下字符串,如何将其转换为hashie :: mash或如何将user
属性作为json提取。
"#<Hashie::Mash user=#<Hashie::Mash birth_date=Fri, 15 Jan 1988 code=\"test\" email=\"test@test.com\" first_name=\"test\">>"
答案 0 :(得分:2)
不幸的是,我怀疑您会得到比这更好的东西:
s = "#<Hashie::Mash user=#<Hashie::Mash birth_date=Fri, 15 Jan 1988" +
" code=\"test\" email=\"test@test.com\" first_name=\"test\">>"
s[/(?<=user=#<Hashie::Mash ).*?(?=>)/].
split(/(?=[\s\A]\S+=)/).
map do |s|
s.
strip.
split('=').
map { |s| s.gsub(/\A"|"\z/, "") }
end.to_h
#⇒ {"birth_date"=>"Fri, 15 Jan 1988",
# "code"=>"test",
# "email"=>"test@test.com",
# "first_name"=>"test"}