Importing and processing the .json files

First off thanks for the great game; and on that note onto the reason for the post as the blue box is telling me that this is too similar to everyone else post…

I was inspired by the recent developer videos posted over the past few weeks especially the making the cook video.

As a result I’ve processed the data from each of the job description .json files into a table format to see the differences and maybe have a go myself:
Table Name : Column Name : weaver : carpenter : and so on.
Top Level : Name : Weaver : Carpenter : and so on.
Top Level : parent_job : [stonehearth:jobs:worker stonehearth:jobs:worker] : and so on.
Top Level -equipment:…

Thanks for the consistent formatting that meant that I could do so quickly and easily :smile:

Is there a big difference in { vs [?
I’ve ignored the difference giving me an additional level of things, but sometimes this seems a little “wrong” especially around the level perks; they all have the same descriptive fields so really should be a table of perks. This left something similar with the workshop ingredients materials; but had to (due to the way that I’m processing the files for import, thanks again for being super consistent :)) put some CR LF into these to force the categorisation, which means that I have a x resource column and value and the count is a little redundant if that is the case as it could be replaced with the value…

I think I got this.

For tag, variable pairs, you use “tag” : variable.
Integers, floats and booleans and null are written as they are.
Strings are surrounded by “”.
Objects are surrounded by {}.
Arrays are surrounded by [].

This is as per the json syntax rules.


Tuhalu’s post correct; I will add onto it a little.

Arrays contain single values, such as a bunch of strings one after another, a bunch of integers one after another, etc. The items inside an array correspond to an index within that array. So, for example take array test = ["a", "b", "c"]: at index 0 – that is test[0] – you will find the string "a". test[1] will return "b", and so on.

Objects are similar to arrays, except instead of indices being assumed based on the position of the item inside the array, you specify the index yourself. For example: given test = {"foo":"bar", 55: "baz", "seventyeleven":44}, you can expect test["foo"] (or to return the string "bar", test[55] (but NOT test.55!) will give you "baz", and so forth.

Good luck!


Thanks both for the replies :smile:

This gives me the clarity that I needed to confirm that array items should really be in a “separate table” (from a database design / normalisation perspective) so that they can be looked up from; however this is not the way that the files I’m working with are structured so for now I’ll live with what I’ve got as really I am looking to make spreadsheet of tables first to make sense of what I’m seeing across the various .json files.