Skip to content

Instantly share code, notes, and snippets.

@ericboehs
Last active October 28, 2022 16:49
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save ericboehs/93574cdae91d1f661e8ce8d48b162872 to your computer and use it in GitHub Desktop.
Dynamically parsing JSON via ERB
{
"form1[0].#subform[0].veteranLastName[0]": "<%= data['veteranFullName']['last'] %>",
"form1[0].#subform[0].veteranFirstName[0]": "<%= data['veteranFullName']['first'] %>",
"form1[0].#subform[0].veteranMiddleInitial[0]": "<%= data['veteranFullName']['middle'] %>",
"form1[0].#subform[0].veteranSocialSecurityNumber[0]": "<%= data['veteranSocialSecurityNumber'] %>",
"form1[0].#subform[0].VAfileNumber[0]": "<%= data['vaFileNumber'] %>",
"form1[0].#subform[0].applicantLastName2[0]": "<%= data['applicant1']['last'] %>",
"form1[0].#subform[0].applicantFirstName2[0]": "<%= data['applicant1']['first'] %>",
"form1[0].#subform[0].veteranDateOfBirth[0]": "<%= data['vet']['dob'] %>",
"form1[0].#subform[0].veteranTelephoneNumber[0]": "<%= data['sponsorPhone'] %>",
"form1[0].#subform[0].relationshipToVeteran2[0]": "<%= data['applicant1']['relationship'] %>",
"form1[0].#subform[0].veteranDateOfDeath[0]": "<%= data['vet']['deceasedDate'] %>",
"form1[0].#subform[0].veteranDateOfMarriage[0]": "<%= data['vet']['marraigeDate'] %>"
}
require 'erb'
require 'json'
data = Hash.new { |hash, key| hash[key] = Hash.new }
data['veteranFullName']['last'] = 'Smith'
data['veteranFullName']['first'] = 'John'
data['veteranFullName']['middle'] = 'Paul'
data['veteranSocialSecurityNumber'] = '123-456-7890'
data['vaFileNumber'] = '1'
data['applicant1']['last'] = 'Smith'
data['applicant1']['first'] = 'john'
data['vet']['dob'] = '02/03/04'
data['sponsorPhone'] = '555-555-1212'
data['applicant1']['relationship'] = 'Self'
data['vet']['deceasedDate'] = 'N/A'
data['vet']['marraigeDate'] = 'N/A'
template = File.read 'foo.json.erb'
result = ERB.new(template).result
json = JSON.parse result
puts JSON.pretty_generate json
@ericboehs
Copy link
Author

curl -sL https://gist.github.com/ericboehs/93574cdae91d1f661e8ce8d48b162872/raw/foo.json.erb > foo.json.erb
curl -sL https://gist.github.com/ericboehs/93574cdae91d1f661e8ce8d48b162872/raw/parse_it.rb > parse_it.rb
ruby parse_it.rb
{
  "form1[0].#subform[0].veteranLastName[0]": "Smith",
  "form1[0].#subform[0].veteranFirstName[0]": "John",
  "form1[0].#subform[0].veteranMiddleInitial[0]": "Paul",
  "form1[0].#subform[0].veteranSocialSecurityNumber[0]": "123-456-7890",
  "form1[0].#subform[0].VAfileNumber[0]": "1",
  "form1[0].#subform[0].applicantLastName2[0]": "Smith",
  "form1[0].#subform[0].applicantFirstName2[0]": "john",
  "form1[0].#subform[0].veteranDateOfBirth[0]": "02/03/04",
  "form1[0].#subform[0].veteranTelephoneNumber[0]": "555-555-1212",
  "form1[0].#subform[0].relationshipToVeteran2[0]": "Self",
  "form1[0].#subform[0].veteranDateOfDeath[0]": "N/A",
  "form1[0].#subform[0].veteranDateOfMarriage[0]": "N/A"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment