| 161 | // ---------------------------------------------------------------------- |
| 162 | |
| 163 | static String escapeJsonString(String str) { |
| 164 | StringBuilder result = new StringBuilder(); |
| 165 | result.append("\""); |
| 166 | for (int i = 0; i < str.length(); i++) { |
| 167 | int c = str.charAt(i); |
| 168 | if (c == 0x08) { result.append("\\b"); } |
| 169 | else if (c == 0x09) { result.append("\\t"); } |
| 170 | else if (c == 0x0A) { result.append("\\n"); } |
| 171 | else if (c == 0x0C) { result.append("\\f"); } |
| 172 | else if (c == 0x0D) { result.append("\\r"); } |
| 173 | else if (c == 0x22) { result.append("\\\""); } |
| 174 | else if (c == 0x5C) { result.append("\\\\"); } |
| 175 | else if (c >= 0x00 && c <= 0x1F) { result.append("\\u00" + String.format("%02x", c)); } |
| 176 | else { result.append((char)c); } |
| 177 | } |
| 178 | result.append("\""); |
| 179 | return result.toString(); |
| 180 | } |
| 181 | |
| 182 | static String rsvToJson(String[][] rows) { |
| 183 | StringBuilder sb = new StringBuilder(); |