Samples_JSON - gfd-dennou-club/mrubyc-esp32 GitHub Wiki

一般的な利用例

プログラム例

str = '{ "Ocean": { "Squid":10, "Octopus":8 } }'

json = JSON.parser(str)

p json
p json["Ocean"]["Squid"]

puts json.pretty_generate

str2 = JSON.generate(
  {
    "Ocean" => {
      "Squid" => 10,
      "Octopus" => 8
    }
  }
)

puts str2

出力例

{"Ocean"=>{"Squid"=>10, "Octopus"=>8}}
10
{
  "Ocean": {
    "Squid": 10,
    "Octopus": 8
  }
}
{"Ocean":{"Squid":10,"Octopus":8}}

途中で切れたJSONの利用例

プログラム例

str = <<JSON
{
  "first": {
    "temp": [23.4, 0],
    "humidity": 94
  },
  "second": {
    "temp": [23
JSON

json = JSON.parser_first(str)

p json
puts json.pretty_generate

出力例

{
  "first": {
    "temp": [
      23.4,
      0
    ],
    "humidity": 94
  }
}

HashをJSONへ変換

プログラム例

data = {
  "Ocean" => {
    "Squid" => 10,
    "Octopus" => 8
  }
}

str = JSON.generate(data)

puts str

出力例

{"Ocean":{"Squid":10,"Octopus":8}}

配列を含むデータを JSON へ変換

プログラム例

data = {
  "station" => "Matsue",
  "temperatures" => [23.4, 23.5, 23.6]
}

str = JSON.generate(data)

puts str

出力例

{"station":"Matsue","temperatures":[23.4,23.5,23.6]}

数値、真偽値、nil を含むデータを JSON へ変換

プログラム例

data = {
  "temperature" => 23.4,
  "humidity" => 94,
  "raining" => false,
  "valid" => true,
  "error" => nil
}

str = JSON.generate(data)

puts str

出力例

{"temperature":23.4,"humidity":94,"raining":false,"valid":true,"error":null}