問題タブ [openstruct]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - プログラムでオブジェクトに属性を追加するにはどうすればよいですか?
私はハッシュの配列を持っていますが、それらのオブジェクトにプログラムで追加された属性を持つオブジェクトの配列に変換したいと思います。
今やってみます
要約すると、私がやろうとしていること
しかし、プログラム的に、たとえば配列/ハッシュがこのように見えた場合
ruby - Rubyクラスを拡張してOpenStructのように動的に動作させることはできますか?
モジュールを含むRubyクラスがあります。インクルードクラスをOpenStructのように動作させたい。OpenStructから明示的に継承せずにこれを実現するにはどうすればよいですか?
それ以外の
ruby - OpenStruct はネストをサポートしていますか? はいの場合、Nokogiri を使用して XML を構築するにはどうすればよいですか? そうでない場合、これは Nokogiri と JSON を使用して実行できますか?
@Jamie によって提供された以前のソリューションは、いくつかのシナリオでのみ正常に機能しているようです。解決策は
私は Nokogiri を使用して構築する以下の XML を持っています。これが OpenStruct を使用して実行できないかどうかを知りたかっただけです。これはJsonを使用して行うことができますか? はいの場合、Nokogiri と Json を使用してこれを構築する方法を教えてください。
以下はこのXMLです。構築したい...
以下のOpenStruct形式で編成されたデータがあります...
ネスティング機能がないため、OpenStruct で可能かどうかはわかりません。顕著な制限なしでこれを達成するために JSON を使用する他の方法はありますか? 以前のコードを修正してください。
この以前の質問を見るには、Nokogiri を使用して NodeSet に子ノードを追加する方法 [ここをクリック] (http://stackoverflow.com/questions/10300095/how-to-add-child-nodes-in-nodeset-using-nokogiri)
OpenStruct に関する以下の問題が表示されます...
最初の「catalogProductInfo」の「productType」にアクセスしたいのですが、「collection.catalogList.catalogProductInfo.productType.content」と言ったところ、以下のエラーが発生しました
ここで立ち往生し、この状況なら抜け出したい。OpenStruct を使用してデータを整理できない場合。これはJSONを使用して行うことができますか? ? Nokogiri と JSon の方法も教えてください。手伝ってください。
ruby - OpenStruct/Hash から XML への変換
Nokogiri の助けを借りて XML を構築するために使用する OpenStruct 要素のコレクションがあります。
私は以下のコードで試しました..あなたの答えに従って(要素のハンドピック)
以下の出力が必要です...
要素のネストされた OpenStruct 配列でループしようとしましたが、そのための正しいロジックにたどり着くことができませんでした..
ruby-on-rails - ダンプされた値を持つハッシュが変更されると、OpenStruct の値が変更されるのはなぜですか?
何が起こっているのか知りたいです。
私が次のことをするとき:
これにより、次の結果が得られます。
次に、いくつかのパラメータを作成して変更すると:
これにより、OpenStruct が次のように変更されます。
params ハッシュを変更すると、この OpenStruct が変更されるのはなぜですか? OpenStruct を変更せずに params ハッシュを変更する方法はありますか?
ありがとう!
ruby - OpenStruct.newは属性を格納しますが、取得しません
新しいRubyOpenStructオブジェクトを作成した後、属性を保存することはできますが、属性を取得することはできません(空白行が表示され、nil
代わりに返されます)。
別の名前で他のプロパティを保存しようとすると、すべてが期待どおりに機能します。この問題は、という名前のプロパティを保存した場合にのみ発生するようy
です。私は次のバージョンを使用しています:
ruby 1.9.2p320 (2012-04-20 revision 35421) [i686-linux]
誰かが何が起こっているのか考えていますか?
ruby - OpenStruct での marshal_load の使用
OpenStruct の marshal_load ユーティリティを使用するにはどうすればよいですか? 意図したとおりに機能していないようです。
ドキュメントにはこの例が示されていますが、機能していないようです。
この方法ではない場合、(コンストラクターを使用せずに) ハッシュを OpenStruct にロードするにはどうすればよいですか?
コンテキスト: YAML ファイルからハッシュを読み込み、それを OpenStruct サブクラスの既存のインスタンスに読み込みます。
ruby - ハッシュの代わりにOpenStructを使用する必要があるのはいつですか?
私は「任意の属性の定義」が好きで、ルビーのOpenStructはハッシュを使用するよりもクリーンに感じることがあると思いますが、OpenStructを単に使用するよりも良い選択にする他の特定の利点やユースケースがあるかどうかについて興味がありますハッシュ。
ruby - OpenStruct に存在しない属性にアクセスすると例外が発生する
設定されていない属性にアクセスしようとすると、OpenStruct のサブクラス (または任意のクラス)、またはハッシュがカスタム例外を発生させるようにする方法を見つけようとしています。define_method
これを行うことができなかっmethod_missing
たので、Rubyでどのように行うべきかわかりません。
次に例を示します。
私はそれが次のようなものでなければならないだろうと想像できました:
編集:存在する属性は例外を発生させません。私が探している機能は、属性に自由にアクセスできるようにすることです。属性が存在しない場合は、カスタム例外が発生します。
ruby - Ruby でネストされた YAML をネストされた配列と OpenStructs に変換するにはどうすればよいですか
一連のネストされたハッシュ (任意の深さにネストされた) を一連のネストされた OpenStructs に変換するにはどうすればよいですか? 大きな YAML ファイルを読み込んでいますが、楽しめませんaccessing['everything']['like']['this']
。
Googleを使用して部分的な解決策をいくつか見つけましたが、これはここで良い質問になると思いました.
http://andreapavoni.com/blog/2013/4/create-recursive-openstruct-from-a-ruby-hashから見つけた解決策の 1 つを次に示します。
このソリューションの問題は、配列が考慮されていないことです。