sql >> データベース >  >> RDS >> PostgreSQL

json表現からIPAddrインスタンスを取得します

    これが役立つかどうかはわかりませんが、d_ethierの回答の下にある私のコメントを読むと、IPAddrであることがわかります。 JSONについては何も知りません。

    ただし、次のようにJSONを理解するためにモンキーパッチを適用できます。

    require 'active_model'
    require 'active_support'
    require 'active_support/core_ext'
    require 'ipaddr'
    
    class IPAddr
      include ActiveModel::Serializers::JSON
    
      attr_accessor :addr, :mask_addr, :family
    
      def attributes=(hash)
        hash.each do |key, value|
          send("#{key}=", value)
        end
      end
    
      def attributes
        instance_values
      end
    end   
    
    p i = IPAddr.new('127.0.0.1')
    p j = i.to_json
    p IPAddr.new.from_json(j)
    

    出力:

    #<IPAddr: IPv4:127.0.0.1/255.255.255.255>
    "{\"family\":2,\"addr\":2130706433,\"mask_addr\":4294967295}"
    #<IPAddr: IPv4:127.0.0.1/255.255.255.255>
    

    出典:
    http://apidock.com/rails/ActiveModel/Serializers / JSON / from_json



    1. OracleのJSON_OBJECTAGG()関数

    2. Heroku用のPostgreSQLgempqのインストール

    3. すべてのDBAが知っておくべき4つの主要なデータベース監視アクティビティ

    4. CakephpのUNION構文