torfsen/barely_json

Allow parsing "json" which is wrapped in "[ ]", not "{ }"

Closed this issue · 1 comments

Would it be possible the library to parse json which is wrapped in [ ], not { }, like this file (from the settings file of Sublime Text, if you're interested)):

[
    {
        "caption": "Word Wrap: Toggle",
        "command": "toggle_setting",
        "args": {"setting": "word_wrap"}
    },
    {
        "caption": "Convert Case: Upper Case",
        "command": "upper_case"
    },
    { "caption": "Indexing Status", "command": "show_progress_window" },
]

That should already work, @AllanLRH, since your example is almost valid JSON: The only "error" is the trailing comma after the last list item.

barely_json parses it just fine:

In [1]: import barely_json

In [2]: source = '''
   ...: [
   ...:     {
   ...:         "caption": "Word Wrap: Toggle",
   ...:         "command": "toggle_setting",
   ...:         "args": {"setting": "word_wrap"}
   ...:     },
   ...:     {
   ...:         "caption": "Convert Case: Upper Case",
   ...:         "command": "upper_case"
   ...:     },
   ...:     { "caption": "Indexing Status", "command": "show_progress_window" },
   ...: ]
   ...: '''

In [3]: print(barely_json.parse(source))
[{'caption': 'Word Wrap: Toggle', 'args': {'setting': 'word_wrap'}, 'command': 'toggle_setting'}, {'caption': 'Convert Case: Upper Case', 'command': 'upper_case'}, {'caption': 'Indexing Status', 'command': 'show_progress_window'}, u'']

Note the empty string at the end of the list due to the trailing comma.

I'm closing this ticket, feel free to re-open if there is something I've missed.