@Override public String toString() { return JSONUtil.toJSON(propMap, -1); } }
public void write(char[] val) { JSONUtil.writeString(val, 0, val.length, out); }
public void write(boolean bool) { JSONUtil.writeBoolean(bool,out); }
public static String toJSON(Doc doc) { CharArr out = new CharArr(); try { out.append("{\"add\":{\"doc\":{"); boolean firstField = true; for (Fld fld : doc.fields) { if (firstField) firstField=false; else out.append(','); JSONUtil.writeString(fld.ftype.fname, 0, fld.ftype.fname.length(), out); out.append(':'); if (fld.vals.size() > 1) { out.append('['); } boolean firstVal = true; for (Comparable val : fld.vals) { if (firstVal) firstVal=false; else out.append(','); out.append(JSONUtil.toJSON(val)); } if (fld.vals.size() > 1) { out.append(']'); } } out.append("}}}"); } catch (IOException e) { // should never happen } return out.toString(); }
public void write(float number) { JSONUtil.writeNumber(number,out); }
public static void writeStringPart(char[] val, int start, int end, CharArr out) { for (int i=start; i<end; i++) { char ch = val[i]; // When ch>=1f, (ch*146087937)&0xd6a01f80) is 0 only for characters that need escaping: " \\ u2028 u2029 // and has 7 false positives: 204a 4051 802f c022 c044 e04a e04b if (ch > 0x1f && ((ch * 146087937) & 0xd6a01f80) != 0) { out.write(ch); } else { writeChar(ch, out); } } }
public void writeNull() { JSONUtil.writeNull(out); }
public static void writeChar(char ch, CharArr out) { switch(ch) { case '"': case '\\': out.write('\\'); out.write(ch); break; case '\r': out.write('\\'); out.write('r'); break; case '\n': out.write('\\'); out.write('n'); break; case '\t': out.write('\\'); out.write('t'); break; case '\b': out.write('\\'); out.write('b'); break; case '\f': out.write('\\'); out.write('f'); break; // case '/': case '\u2028': // valid JSON, but not valid json script case '\u2029': unicodeEscape(ch,out); break; default: if (ch <= 0x1F) { unicodeEscape(ch,out); } else { out.write(ch); } } }
if (firstField) firstField=false; else out.append(','); JSONUtil.writeString(sfield.getName(), 0, sfield.getName().length(), out); out.append(':'); if (firstVal) firstVal=false; else out.append(','); out.append(JSONUtil.toJSON(val)); out.append(JSONUtil.toJSON(sfield.getValue()));
public void write(long number) { JSONUtil.writeNumber(number,out); }
public static void writeStringPart(CharSequence chars, int start, int end, CharArr out) { for (int i=start; i<end; i++) { char ch = chars.charAt(i); // When ch>=1f, (ch*146087937)&0xd6a01f80) is 0 only for characters that need escaping: " \\ u2028 u2029 // and has 7 false positives: 204a 4051 802f c022 c044 e04a e04b if ( ch>0x1f && ((ch*146087937)&0xd6a01f80)!=0 ) { out.write(ch); } else { writeChar(ch, out); } } }
public void writeNull() { JSONUtil.writeNull(out); }
public static void writeChar(char ch, CharArr out) { switch(ch) { case '"': case '\\': out.write('\\'); out.write(ch); break; case '\r': out.write('\\'); out.write('r'); break; case '\n': out.write('\\'); out.write('n'); break; case '\t': out.write('\\'); out.write('t'); break; case '\b': out.write('\\'); out.write('b'); break; case '\f': out.write('\\'); out.write('f'); break; // case '/': case '\u2028': // valid JSON, but not valid json script case '\u2029': unicodeEscape(ch,out); break; default: if (ch <= 0x1F) { unicodeEscape(ch,out); } else { out.write(ch); } } }
@Override public String toString() { return name + ':' + JSONUtil.toJSON(propMap, -1); // small enough, keep it on one line (i.e. no indent) } }
public void writeString(CharArr str) { JSONUtil.writeString(str,out); }
public void write(double number) { JSONUtil.writeNumber(number,out); }
public static void writeStringPart(CharSequence chars, int start, int end, CharArr out) { for (int i=start; i<end; i++) { char ch = chars.charAt(i); // When ch>=1f, (ch*146087937)&0xd6a01f80) is 0 only for characters that need escaping: " \\ u2028 u2029 // and has 7 false positives: 204a 4051 802f c022 c044 e04a e04b if ( ch>0x1f && ((ch*146087937)&0xd6a01f80)!=0 ) { out.write(ch); } else { writeChar(ch, out); } } }
public void write(boolean bool) { JSONUtil.writeBoolean(bool,out); }
@Override public String toString() { return JSONUtil.toJSON(this); /*** StringBuilder sb = new StringBuilder(); Set<Entry<String,Object>> entries = propMap.entrySet(); for(Entry<String,Object> entry : entries) { sb.append(entry.getKey() + "=" + entry.getValue() + "\n"); } return sb.toString(); ***/ }
public void write(char[] val) { JSONUtil.writeString(val, 0, val.length, out); }