/// <summary> /// Turns this object to JSON formatted string using specified settings. /// </summary> /// <returns> /// This object as JSON formatted string. /// </returns> public virtual string CreateString(CreateStringSettings settings) { CreateStringRunner createStringRunner = new CreateStringRunner(settings); zCreate(createStringRunner); return(createStringRunner.getFinalString()); }
internal abstract void zCreate(CreateStringRunner createStringRunner);
internal override void zCreate(CreateStringRunner createStringRunner) { createStringRunner.append(NULL); }
internal static void encode(CreateStringRunner createStringRunner, string str) { createStringRunner.append('"'); foreach (char chr in str) { if (chr == '"') { createStringRunner.append("\\\""); } else if (chr == '\\') { createStringRunner.append("\\\\"); } else if (chr == '/' && createStringRunner.isEscapeForwardSlashes()) { createStringRunner.append("\\/"); } else if (chr == '\b') { createStringRunner.append("\\b"); } else if (chr == '\f') { createStringRunner.append("\\f"); } else if (chr == '\n') { createStringRunner.append("\\n"); } else if (chr == '\r') { createStringRunner.append("\\r"); } else if (chr == '\t') { createStringRunner.append("\\t"); } else if (chr < 32 || chr > 126) // } else if (chr<32 || (chr>126 && createStringRunner.isEncodeNon7bitCharacters())) { { if (chr < 16) { createStringRunner.append("\\u000"); createStringRunner.append(HEX[chr]); } else if (chr < 256) { createStringRunner.append("\\u00"); createStringRunner.append(HEX[chr / 16]); createStringRunner.append(HEX[chr % 16]); } else if (chr < 4096) { createStringRunner.append("\\u0"); createStringRunner.append(HEX[chr / 256]); createStringRunner.append(HEX[(chr % 256) / 16]); createStringRunner.append(HEX[chr % 16]); } else { createStringRunner.append("\\u"); createStringRunner.append(HEX[chr / 4096]); createStringRunner.append(HEX[(chr % 4096) / 256]); createStringRunner.append(HEX[(chr % 256) / 16]); createStringRunner.append(HEX[chr % 16]); } } else { createStringRunner.append(chr); } } createStringRunner.append('"'); }
internal override void zCreate(CreateStringRunner createStringRunner) { encode(createStringRunner, stringValue); }
internal override void zCreate(CreateStringRunner createStringRunner) { createStringRunner.append(this.AsString()); }
internal override void zCreate(CreateStringRunner createStringRunner) { createStringRunner.append(boolValue?TRUE:FALSE); }