Skip to content

Instantly share code, notes, and snippets.

@crwang
Last active August 29, 2015 14:03
Show Gist options
  • Save crwang/6213387263ecd70ad47b to your computer and use it in GitHub Desktop.
Save crwang/6213387263ecd70ad47b to your computer and use it in GitHub Desktop.
Post Complex JSON to Rails

Post from command line

curl -H "Content-Type:application/json" -H "Accept:application/json" -d "{\"commute\":{\"minutes\":0, 
\"startTime\":\"Wed May 06 22:14:12 EDT 2009\", 
\"locations\":[{\"latitude\":\"40.4220061\",
\"longitude\":\"40.4220061\"}, {\"latitude\": \"30\", \"longitude\":\"40\"}]}}"  http://localhost:3000/test

In Rails

  puts "commute"
  puts params[:commute]

  puts "commute locations"
  puts params[:commute][:locations]

  puts "commute locations[0]"
  puts params[:commute][:locations][0]

  puts "commute locations[0] latitude"
  puts params[:commute][:locations][0][:latitude]

Output

commute
{"minutes"=>0, "start_time"=>"Wed May 06 22:14:12 EDT 2009", "locations"=>[{"latitude"=>"40.4220061", "longitude"=>"40.4220061"}, {"latitude"=>"30", "longitude"=>"40"}]}
commute locations
{"latitude"=>"40.4220061", "longitude"=>"40.4220061"}
{"latitude"=>"30", "longitude"=>"40"}
commute locations[0]
{"latitude"=>"40.4220061", "longitude"=>"40.4220061"}
commute locations[0] latitude
40.4220061
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment