So, the "local data = resume.getJasonData()" is a pointer, but my local is a value?
You can think of everything as a pointer. After
local data = resume.getJsonData()
You have resume.data -> jason_data and local data -> jason_data. And jason_data -> blocks -> html. If you do
local s = data.blocks.html
Then s -> html meaning the string in "html". If you now do
s = "xyz"
Then s -> "xyz" and the data is unaffected.
Also, is these two lines required to set the value?
Yes but this may change later. Resume is still a java class so the interface isn't perfectly clean.