簡體   English   中英

如何在ruby中將ruby格式的json字符串轉換為json哈希?

[英]How to convert ruby formatted json string to json hash in ruby?

我想訪問類似哈希對象的json字符串,以便我可以使用像temp["anykey"]這樣的鍵值來訪問json。 如何將ruby格式的json字符串轉換為json對象?

我有以下json字符串

temp = '{"accept"=>"*/*", "host"=>"localhost:4567", "version"=>"HTTP/1.1", 
       "user_agent"=>"curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3", 
       "http_token"=>"375fe428b1d32787864264b830c54b97"}'

你知道JSON.parse嗎?

require 'json'

my_hash = JSON.parse('{"hello": "goodbye"}')
puts my_hash["hello"] => "goodbye"

如果您將此字符串解析為ruby對象,它將返回一個ruby Hash對象,您可以像這樣得到它您可以為Ruby安裝json gem

gem install json

您需要在代碼中使用gem,如下所示:

require 'rubygems'
require 'json'

然后你可以像這樣解析你的JSON字符串:

ruby_obj = JSON.parse(json_string)

還有其他JSON for Ruby實現:

您可以在temp json字符串上嘗試eval方法

例:

eval(temp)

這將返回以下哈希值

{"accept"=>"*/*", "host"=>"localhost:4567", "version"=>"HTTP/1.1", "user_agent"=>"curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3", "http_token"=>"375fe428b1d32787864264b830c54b97"}

希望這會有所幫助。

謝謝

要將Ruby哈希轉換為json字符串,只需調用to_json即可。

require 'json'

temp = {"accept"=>"*/*", "host"=>"localhost:4567", "version"=>"HTTP/1.1", 
   "user_agent"=>"curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3", 
   "http_token"=>"375fe428b1d32787864264b830c54b97"}
temp.to_json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM