I have a string containing malformed JSON which is being provided to me where the keys are missing the quotation marks. The structure of the JSON is out of my control, so I
If the only thing wrong with the JSON is property names without quotes, then it is still a valid JavaScript object literal even though it isn't valid JSON.
So, if you trust the source, you can wrap the text in parentheses and eval it.
This will be simpler and more reliable than any regular expression.
Example:
var badJSON = '{ a: "b" }';
var obj = eval( '(' + badJSON + ')' );
console.log( obj ); // Logs: Object {a: "b"}
console.log( obj.a ); // Logs: b