package prophecy.common; public class JSONMinify { public static String minify(String jsonString) { boolean in_string = false; boolean in_multiline_comment = false; boolean in_singleline_comment = false; char string_opener = 'x'; // unused value, just something that makes compiler happy StringBuilder out = new StringBuilder(); for (int i = 0; i < jsonString.length(); i++) { // get next (c) and next-next character (cc) char c = jsonString.charAt(i); String cc = jsonString.substring(i, Math.min(i+2, jsonString.length())); // big switch is by what mode we're in (in_string etc.) if (in_string) { if (c == string_opener) { in_string = false; out.append(c); } else if (c == '\\') { // no special treatment needed for \\u, it just works like this too out.append(cc); ++i; } else out.append(c); } else if (in_singleline_comment) { if (c == '\r' || c == '\n') in_singleline_comment = false; } else if (in_multiline_comment) { if (cc.equals("*/")) { in_multiline_comment = false; ++i; } } else { // we're outside of the special modes, so look for mode openers (comment start, string start) if (cc.equals("/*")) { in_multiline_comment = true; ++i; } else if (cc.equals("//")) { in_singleline_comment = true; ++i; } else if (c == '"' || c == '\'') { in_string = true; string_opener = c; out.append(c); } else if (!Character.isWhitespace(c)) out.append(c); } } return out.toString(); } }
From http://jsonminify.tinybrain.de with greetings.
Travelled to 12 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
ID | Author/Program | Comment | Date | |
---|---|---|---|---|
399 | #1000610 | Edit suggestion: !636 !629 main { static Object androidContext; static String programID; public static void main(String[] args) throws Exception { package prophecy.common; public class JSONMinify { public static String minify(String jsonString) { boolean in_string = false; boolean in_multiline_comment = false; boolean in_singleline_comment = false; char string_opener = 'x'; // unused value, just something that makes compiler happy StringBuilder out = new StringBuilder(); for (int i = 0; i < jsonString.length(); i++) { // get next (c) and next-next character (cc) char c = jsonString.charAt(i); String cc = jsonString.substring(i, Math.min(i+2, jsonString.length())); // big switch is by what mode we're in (in_string etc.) if (in_string) { if (c == string_opener) { in_string = false; out.append(c); } else if (c == '\\') { // no special treatment needed for \\u, it just works like this too out.append(cc); ++i; } else out.append(c); } else if (in_singleline_comment) { if (c == '\r' || c == '\n') in_singleline_comment = false; } else if (in_multiline_comment) { if (cc.equals("*/")) { in_multiline_comment = false; ++i; } } else { // we're outside of the special modes, so look for mode openers (comment start, string start) if (cc.equals("/*")) { in_multiline_comment = true; ++i; } else if (cc.equals("//")) { in_singleline_comment = true; ++i; } else if (c == '"' || c == '\'') { in_string = true; string_opener = c; out.append(c); } else if (!Character.isWhitespace(c)) out.append(c); } } return out.toString(); } } }} | 2015-08-18 11:38:21 | delete |
397 | #1000604 (pitcher) | 2015-08-18 00:07:22 |
Snippet ID: | #727 |
Snippet name: | JSONMinify.java - THE ORIGINAL (with package statement) |
Eternal ID of this version: | #727/1 |
Text MD5: | 3516d071e70d333f02d3ec6988827612 |
Author: | stefan |
Category: | |
Type: | IOIOI |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2015-08-10 23:44:53 |
Source code size: | 1775 bytes / 53 lines |
Pitched / IR pitched: | No / Yes |
Views / Downloads: | 900 / 139 |
Referenced in: | [show references] |