预期的工作如下:
require 'json'
hash = {}
hash['some_key'] = false
hash['another_key'] = "that"
hash['my_key'] = hash.delete('some_key')
puts hash.to_json
结果
{"another_key":"that","my_key":false}
但是,当我尝试以下操作时,它会导致新键的值为空。此外,旧密钥不会被删除:
require 'whois-parser'
require 'json'
c = Whois::Client.new
record = c.lookup('google.com')
parser = record.parser
msg = {}
for prop in Whois::Parser::PROPERTIES
msg[prop] = parser.send(prop)
end
msg['available'] = msg.delete('available?')
puts msg.to_json
结果:
{
"disclaimer":"TERMS OF USE: ...",
"domain":"google.com",
"domain_id":"2138514_DOMAIN_COM-VRSN",
"status":"registered",
"available?":false,
"registered?":true,
"created_on":"1997-09-15 00:00:00 -0700",
"updated_on":"2018-02-21 10:45:07 -0800",
"expires_on":"2020-09-13 21:00:00 -0700",
"registrar":"#<struct Whois::Parser::Registrar id=\"292\", name=\"MarkMonitor, Inc.\", organization=\"MarkMonitor, Inc.\", url=\"http://www.markmonitor.com\">",
"registrant_contacts":[],
"admin_contacts":[],
"technical_contacts":[],
"nameservers":["ns2.google.com","ns1.google.com","ns4.google.com","ns3.google.com"],
"available":null
}
为什么是钥匙
available?
仍然设置,为什么有键
available
价值
null
?