Home > other >  How can I parse a JSON file with comments in client-side Javascript? (Don't need to preserve co
How can I parse a JSON file with comments in client-side Javascript? (Don't need to preserve co

Time:01-10

First, I know that JSON doesn't support comments. I'm using them anyway because I need to write little notes to make it easy for people who aren't tech-savvy to edit this file.

I'm using double-slash comments, but I can switch to slash-star if needed.

"campaignID": "230109-stock-shop", // this is the method I want

I know the technique of creating extra comment fields like this, but it doesn't fit my needs.

"__comment": "this ISN'T the method I want"

I'm working entirely in client-side Javascript/jQuery. When I import a file with comments, it - of course - doesn't work. $.getJSON('file.json', function (json) {//do things})

Is it possible to strip out the comments when importing the JSON file somehow? I tried to find a JS library or something that would do that, but everything I found is server-side, and I need everything to run client-side.

I'm also not super great with Javascript, so it's possible I'm missing something obvious.

I really appreciate any help you can give!

CodePudding user response:

You can remove all the comments before trying to parse it.

You won't be able to use $.getJSON(), since that tries to parse the JSON itself. Use $.get(), remove the comment and parse it.

$.get('file.json', function(commented_json) {
    json = JSON.parse(commented_json.replace(/\/\/.*/g, ''));
    // do things
}, "text");

Note that this won't work properly if any of the strings in the JSON contain //. That would require using a real JavaScript parser so it can distinguish the context.

  • Related