What you're looking at is an in-line initialization of an associative array (which functions similarly to a dictionary or map in other languages). If you made a variable in javascript like so:
var phones = {};
Then added values (right hand side) to keys (after the dot on the left)
phones.Steve = '2342311';
phones.Kyle = '3230009';
You will have an associative array (technically everything in javascript is an associative array but lets move on) with two keys. If you've never used them, read about javascript arrays. Continuing on to what you're seeing, my same 3 lines of code can be written like this:
var phones = { Steve: '2342311', Kyle: '3230009' };
Now, the keys value pairs are inside of brackets and separated by commas. When you see something like your example:
minions = {
0: {
name: "Mole",
...
attributes: {
goldPerSec: 1
}
0 is a key for minions with a value of another array (this concept is known in languages as a nested array or two dimentional arrays). attributes is an even more deeply nested array.
To use all of this, say you wanted that goldPerSec value, you'd retrieve it like this:
var gps = minions.0minions[0].attributes.goldPerSec;