Пример #1
0
        public void parse(StreamReader inputStream, String jsonText = null)
        {
            JsonParseException exception = new JsonParseException();

            try
            {
                JsonReader reader = null;
                if (inputStream != null)
                {
                    reader = new JsonTextReader(inputStream);
                }
                else if (jsonText != null)
                {
                    reader = new JsonTextReader(new StringReader(jsonText));
                }


                handler.StartJson();

                bool registerObjectEntryEnd = false;

                while (reader.Read())
                {
                    String type = reader.Value != null?reader.Value.GetType().ToString() : "";

                    if (registerObjectEntryEnd && !top())
                    {
                        handler.EndObjectEntry();
                    }

                    registerObjectEntryEnd = false;

                    switch (reader.TokenType)
                    {
                    case JsonToken.StartObject:
                        push(false);
                        handler.StartObject();
                        break;

                    case JsonToken.EndObject:
                        pop();
                        handler.EndObject();
                        registerObjectEntryEnd = true;
                        break;

                    case JsonToken.PropertyName:
                        handler.StartObjectEntry(reader.Value.ToString());
                        break;

                    case JsonToken.Integer:
                    //case JsonToken.Long:
                    case JsonToken.Float:
                    case JsonToken.Boolean:
                    case JsonToken.String:
                        handler.Primitive(reader.Value);
                        registerObjectEntryEnd = true;
                        break;

                    case JsonToken.StartArray:
                        handler.StartArray();
                        push(true);
                        break;

                    case JsonToken.EndArray:
                        handler.EndArray();
                        pop();
                        registerObjectEntryEnd = true;
                        break;
                    }
                }
                handler.EndJson();
            }
            catch (Exception ex)
            {
                exception.Message = ex.ToString();
                errorHandler.Error(exception);
            }
        }
Пример #2
0
        public void parse(StreamReader inputStream, String jsonText = null)
        {
            JsonParseException exception = new JsonParseException();
            try
            {
                JsonReader reader = null;
                if (inputStream != null)
                    reader = new JsonTextReader(inputStream);
                else if (jsonText != null)
                {
                    reader = new JsonTextReader(new StringReader(jsonText));
                }

                handler.StartJson();

                bool registerObjectEntryEnd = false;

                while (reader.Read())
                {
                    String type = reader.Value != null ? reader.Value.GetType().ToString() : "";

                    if (registerObjectEntryEnd && !top())
                    {
                        handler.EndObjectEntry();
                    }

                    registerObjectEntryEnd = false;

                    switch (reader.TokenType)
                    {
                        case JsonToken.StartObject:
                            push(false);
                            handler.StartObject();
                            break;
                        case JsonToken.EndObject:
                            pop();
                            handler.EndObject();
                            registerObjectEntryEnd = true;
                            break;
                        case JsonToken.PropertyName:
                            handler.StartObjectEntry(reader.Value.ToString());
                            break;
                        case JsonToken.Integer:
                        //case JsonToken.Long:
                        case JsonToken.Float:
                        case JsonToken.Boolean:
                        case JsonToken.String:
                            handler.Primitive(reader.Value);
                            registerObjectEntryEnd = true;
                            break;
                        case JsonToken.StartArray:
                            handler.StartArray();
                            push(true);
                            break;
                        case JsonToken.EndArray:
                            handler.EndArray();
                            pop();
                            registerObjectEntryEnd = true;
                            break;
                    }
                }
                handler.EndJson();
            }
            catch (Exception ex)
            {
                exception.Message = ex.ToString();
                errorHandler.Error(exception);
            }
        }