Minify JSON Text
JavaScript
Hard
3 views
Problem Description
Input is a JSON value as text (may contain spaces and new lines). Without parsing it, remove all whitespace that is outside string literals. Print the minified JSON text.
Input Format
One JSON text (can be multi-line).
Output Format
One line minified JSON.
Sample Test Case
Input:
{
"a": 1,
"b": [2, 3]
}
Output:
{"a":1,"b":[2,3]}
Constraints
Input is valid JSON. Total length up to 2e5.
Official Solution
const fs=require('fs');const txt=fs.readFileSync(0,'utf8');if(!txt.trim())process.exit(0);const QUOTE=34;let out=[];let inStr=false,esc=false;for(let i=0;i<txt.length;i++){const ch=txt[i];const cc=txt.charCodeAt(i);if(inStr){out.push(ch);if(esc){esc=false;continue;}if(ch==='\\\\'){esc=true;continue;}if(cc===QUOTE)inStr=false;continue;}if(cc===QUOTE){inStr=true;out.push(ch);continue;}if(/\\s/.test(ch))continue;out.push(ch);}process.stdout.write(out.join(''));
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!