private static String escapeJSON(String text) {
       StringBuilder builder = new StringBuilder();

       builder.append('"');
       for (int index = 0; index < text.length(); index++) {
           char chr = text.charAt(index);

           switch (chr) {
               case '"':
               case '\\':
                   builder.append('\\');
                   builder.append(chr);
                   break;
               case '\b':
                   builder.append("\\b");
                   break;
               case '\t':
                   builder.append("\\t");
                   break;
               case '\n':
                   builder.append("\\n");
                   break;
               case '\r':
                   builder.append("\\r");
                   break;
               default:
                   if (chr < ' ') {
                       String t = "000" + Integer.toHexString(chr);
                       builder.append("\\u" + t.substring(t.length() - 4));
                   } else {
                       builder.append(chr);
                   }
                   break;
           }
       }
       builder.append('"');

       return builder.toString();
   }