無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

JSONのパーズとシリアライズ

ruby-jsonを使って、JSONのパーズとシリアライズをしてみます。

サンプル:

require 'json/lexer'

# 引数をJSONにシリアライズして、パーズする。
def process( value )
  # 値をJSONにシリアライズ
  json = value.to_json
  puts json

  # JSONをパーズする
  jsonobj = JSON::Lexer.new(json).nextvalue
  p jsonobj
end

puts "\nString---"
process( "mii" )

puts "\nArray---"
process( ["mii", "tora", 1, 2] )

puts "\nHash---"
process( {
  :mii=>{
    :name=>"mii",
    :age=>1
  },
  :tora=>{
    :name=>"tora",
    :age=>2
  }
})

実行結果:

String---
"mii"
"mii"

Array---
["mii","tora",1,2]
["mii", "tora", 1, 2]

Hash---
{"mii":{"name":"mii","age":1},"tora":{"name":"tora","age":2}}
{"mii"=>{"name"=>"mii", "age"=>1}, "tora"=>{"name"=>"tora", "age"=>2}}

YAMLと違ってオブジェクトのシリアライズはサポートされていないようです。(to_sした文字列になります。)

サンプル:

class Kitten
  def initialize( name )
    @name = name
    @age = 1
  end
end

puts "\nObject---"
process( Kitten.new("mii") )

実行結果:

Object---
"#<Kitten:0x4938c68>"
"#<Kitten:0x4938c68>"