コード例 #1
0
ファイル: JsonParser.cs プロジェクト: yusongok/Pub.Class
        /// <summary> 跳过一个值
        /// </summary>
        /// <param name="reader"></param>
        private static void SkipValue(UnsafeJsonReader reader)
        {
            switch (reader.Current)
            {
            case '[':
                reader.MoveNext();
                if (reader.SkipChar(']'))
                {
                    return;
                }
                do
                {
                    SkipValue(reader);
                } while (reader.SkipChar(','));
                if (reader.Current != ']')
                {
                    ThrowException("缺少闭合的 ]");
                }
                reader.MoveNext();
                break;

            case '{':
                reader.MoveNext();
                if (reader.SkipChar('}'))
                {
                    return;
                }
                do
                {
                    SkipKey(reader);
                    SkipValue(reader);
                } while (reader.SkipChar(','));
                if (reader.Current != '}')
                {
                    ThrowException("缺少闭合的 }");
                }
                reader.MoveNext();
                break;

            case '"':
            case '\'':
                reader.SkipString();
                break;

            default:
                reader.ReadConsts();
                break;
            }
        }
コード例 #2
0
ファイル: JsonParser.cs プロジェクト: yusongok/Pub.Class
 /// <summary> 跳过一个键
 /// </summary>
 /// <param name="reader"></param>
 private static void SkipKey(UnsafeJsonReader reader)
 {
     if (reader.IsEnd())
     {
         ThrowException("字符串意外结束!");
     }
     if (reader.Current == '"' || reader.Current == '\'')
     {
         reader.SkipString();
     }
     else
     {
         reader.SkipWord();
     }
     if (reader.SkipChar(':') == false)  //跳过:号
     {
         ThrowMissingCharException(':'); //失败,终止方法
     }
 }
コード例 #3
0
ファイル: JsonParser.cs プロジェクト: pczy/Pub.Class
 /// <summary> 跳过一个键
 /// </summary>
 /// <param name="reader"></param>
 private static void SkipKey(UnsafeJsonReader reader) {
     if (reader.IsEnd()) {
         ThrowException("字符串意外结束!");
     }
     if (reader.Current == '"' || reader.Current == '\'') {
         reader.SkipString();
     } else {
         reader.SkipWord();
     }
     if (reader.SkipChar(':') == false)//跳过:号
     {
         ThrowMissingCharException(':'); //失败,终止方法
     }
 }
コード例 #4
0
ファイル: JsonParser.cs プロジェクト: pczy/Pub.Class
 /// <summary> 跳过一个值
 /// </summary>
 /// <param name="reader"></param>
 private static void SkipValue(UnsafeJsonReader reader) {
     switch (reader.Current) {
         case '[':
             reader.MoveNext();
             if (reader.SkipChar(']')) {
                 return;
             }
             do {
                 SkipValue(reader);
             } while (reader.SkipChar(','));
             if (reader.Current != ']') {
                 ThrowException("缺少闭合的 ]");
             }
             reader.MoveNext();
             break;
         case '{':
             reader.MoveNext();
             if (reader.SkipChar('}')) {
                 return;
             }
             do {
                 SkipKey(reader);
                 SkipValue(reader);
             } while (reader.SkipChar(','));
             if (reader.Current != '}') {
                 ThrowException("缺少闭合的 }");
             }
             reader.MoveNext();
             break;
         case '"':
         case '\'':
             reader.SkipString();
             break;
         default:
             reader.ReadConsts();
             break;
     }
 }