![](/img/trans.png)
[英]How can i parse JSON string in c# Get error Cannot deserialize the current JSON object (e.g. {“name”:“value”})
[英]How can I find out the version of a library that is packaged with Ruby, e.g. json?
一些 Ruby 功能打包在 Ruby 發行版中(不需要作為 gem 顯式安裝或通過捆綁器安裝)。 JSON 就是一個例子( require 'json'
)。 它在 Ruby 代碼中可能是必需的,但不需要 gem 安裝。
然而,JSON 是 Github 上的瑰寶,網址為https://github.com/flori/json 。
那么,當我的代碼中需要 'json' 時,我怎么知道我得到的是哪個版本的 gem?
或者,許多 ruby gem 在常量中指定它們的版本。
您可以利用它來確定您在代碼或控制台中使用的版本,例如
require 'json'
JSON.constants.grep(/VERSION/)
#=>[:VERSION, :VERSION_ARRAY, :VERSION_MAJOR, :VERSION_MINOR, :VERSION_BUILD]
JSON::VERSION
#=> 2.5.1
require 'bundler'
Bundler.constants.grep(/VERSION/)
#=> [:VERSION]
Bundler::VERSION
#=> 2.2.3
您可以找到 Ruby 主目錄,並在其下方搜索具有適當名稱的目錄,然后檢查其version.rb
文件。 例如,使用 rvm 管理的 rubies,我可以這樣做(在 Posix-complaint 系統上,例如 Linux 或 Mac OS):
$ cd $(which ruby)/../..; pwd
/Users/keith.bennett/.rvm/rubies/ruby-3.0.1
$find . -type d -name '*json*'
./lib/ruby/3.0.0/psych/json
./lib/ruby/3.0.0/json
./lib/ruby/3.0.0/rdoc/generator/template/json_index
./lib/ruby/3.0.0/x86_64-darwin19/json
./lib/ruby/gems/3.0.0/gems/json-2.5.1
./lib/ruby/gems/3.0.0/gems/rbs-1.0.4/stdlib/json
我可以cat ./lib/ruby/3.0.0/json/version.rb | grep 'VERSION '
cat ./lib/ruby/3.0.0/json/version.rb | grep 'VERSION '
(包括“VERSION”之后的空格),我得到:
VERSION = '2.5.1'
..這也是上面列表中包含的gems
目錄中的 gem 版本。
所以我可以看到 2.5.1 是我的 JSON 版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.