JSON is a lightweight, plain text data format. It’s become a standard that is widely used across many industries, even healthcare.

Its simple structure makes it a good example to review some key Lua and Translator concepts.

Lets start!

Use the following file:

See Sample Data for how to add sample files to a project.

Now we can see our sample data passed to main by looking at the Annotation Windows. If we click on the sample data in the annotations, we can view it using The string viewing window in Escaped Text view.

Notice, how the JSON object is formatted. Each line ends with a newline “\n” character. We can use this to parse and process the JSON.

You can use String:split() to split the function on (“\n”):

local List = Data:split("\n")
trace(List)

By Using trace() function, we can click on the List in the annotations and see the following:

This string is split into a Lua table as list you can now begin to process. This is great... but with Iguana, we’ve made it a little easier to efficiently parse and process JSON.

local patient = json.parse{data=Data}

JSON objects are parsed into Lua tables as dictionaries with key-value pairs. You can see this clearly in the Annotation Window.

Using if statements, we can conditionally map new values when the specified condition is true.

local state = patient.address.state
if state == "CA" then 
   state = "California"    
end 
trace(state)

if statements

local string = json.serialize{data=patient}
trace(string)