4

RFC822 メールを JSON データベースに挿入したいと考えています。

電子メールを JSON (添付ファイルを除く) として構造化する「良い」方法を想定したいと考えています。

電子メールの「良い」JSON レイアウトの例を知っている人はいますか?

ありがとう

更新:実際には、変換を行うコードではなく、JSON 出力を確認したいと考えています。

4

2 に答える 2

0

おそらく、ヘッダーと本体部分をリストする何かのバリアントが必要になるでしょう。

 {
       headers: [
          { name: value },
          { name2: value}
       ],
       body: [
           { 
               mime: type,
               content: stuff
           },
           {
           },
           .
           .
           .
           {
           }
       ]
    }
于 2013-02-16T05:33:08.630 に答える
0

具体的には行いませんが、Mail gemにはメソッドを YAML にシリアライズするためのメソッドと、YAML からのメッセージを解析するためのメソッドが含まれています。これは、オブジェクトを構築し、Hashそのオブジェクトを JSON にシリアル化することによって行われます。これは、JSON への変換が容易であることも意味します。

これはおそらく次のようになります…</p>

require 'json'

module Mail
  class Message
    def to_json(opts = {})
      hash = {}
      hash['headers'] = {}
      header.fields.each do |field|
        hash['headers'][field.name] = field.value
      end
      hash['delivery_handler'] = delivery_handler.to_s if delivery_handler
      hash['transport_encoding'] = transport_encoding.to_s
      special_variables = [:@header, :@delivery_handler, :@transport_encoding]
      (instance_variables.map(&:to_sym) - special_variables).each do |var|
        hash[var.to_s] = instance_variable_get(var)
      end
      hash.to_json(opts)
    end        
  end
end   

Message#to_yamlmikel's Mail gemのメソッドより。

どの言語でも同様のアプローチを取ることができます。ただし、Ruby を使用している場合、これは既存のツール (Mail gem) に最適です。

于 2011-07-27T06:15:02.933 に答える