Redactor 3 config code I'm trying to get the same features I had in Craft 2 in Craft 3 redactor field.
This is the code I had in config/redactor/standard.json:

{
    "buttons": ["format","bold","lists","link","file"],
    "plugins": ["fullscreen","table","video"],
    "formatting": ["p"],
    formattingAdd: {
        "heading": {
            title: 'Heading',
            args: ['h2']
        },
        "sub-heading": {
            title: 'Sub-Heading',
            args: ['h3']
        },
        "sub-sub-heading": {
            title: 'Sub-sub-Heading',
            args: ['h4']
        },
        "add-attr": {
            title: 'Make a link a button',
            args: ['div', { 'class': 'button' }]
        }
    }   
}


The Craft 3 changes page says:
"All strings must use double quotes rather than single quotes" and that "All object properties (the config setting names) must be wrapped in double quotes".
I've tried changing them all and I still get an error. I've looked on the Imperavi Redactor docs pages, but they don't use double quotes and their examples are not in the same format as the craft plugin uses. Some more examples would be useful.
After several iterations I came up with this that works. But still puzzled as when to use [ ] or { }.

{
    "buttons": ["html","undo","format","bold","lists","link","file"],
    "plugins": ["fullscreen","table","video"],
    "formatting": ["p"],
    "formattingAdd": {
        "heading": {
            "title": "Heading",
            "api": "module.block.format",
            "args": {
                "tag": "h2"
            }
        },
        "sub-heading": {
            "title": "Sub-Heading",
            "api": "module.block.format",
            "args": {
                "tag": "h3"
            }
        },
        "sub-sub-heading": {
            "title": "Sub-sub-Heading",
            "api": "module.block.format",
            "args": {
                "tag": "h4"
            }
        },
        "add-attr": {
            "title": "Make a link a button",
            "api": "module.block.format",
            "args": {
                "tag": "div",
                "class": "button"
            }
        }
    }   
}