以下の内容はhttps://unageanu.hatenablog.com/entry/20070628/1183020691より取得しました。


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>"



以上の内容はhttps://unageanu.hatenablog.com/entry/20070628/1183020691より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14