Пример #1
0
        /// <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());
        }
Пример #2
0
 internal abstract void zCreate(CreateStringRunner createStringRunner);
Пример #3
0
 internal override void zCreate(CreateStringRunner createStringRunner)
 {
     createStringRunner.append(NULL);
 }
Пример #4
0
 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('"');
 }
Пример #5
0
 internal override void zCreate(CreateStringRunner createStringRunner)
 {
     encode(createStringRunner, stringValue);
 }
Пример #6
0
 internal override void zCreate(CreateStringRunner createStringRunner)
 {
     createStringRunner.append(this.AsString());
 }
Пример #7
0
 internal override void zCreate(CreateStringRunner createStringRunner)
 {
     createStringRunner.append(boolValue?TRUE:FALSE);
 }