Пример #1
0
        void ParseGroup(TextGroupDefinition group)
        {
            _writer.WritePropertyName(group.Name);
            if (!group.RecordBreakOnLine)
            {
                _writer.WriteStartObject();
            }
            else
            {
                _writer.WriteStartArray();
            }
            int lineNo = 0;

            while (!_reader.EndOfStream)
            {
                if (_line == null || lineNo > 0)
                {
                    _line = _reader.ReadLine();
                }
                lineNo++;
                if (_line.Trim() != string.Empty && lineNo >= group.ElementsStartOnLine)
                {
                    if (group.EndString != null && _line.Contains(group.EndString))
                    {
                        break;
                    }
                    if (group.RecordBreakOnLine)
                    {
                        _writer.WriteStartObject();
                    }

                    foreach (var subGroup in group.Groups)
                    {
                        if (_line.Contains(subGroup.StartString))
                        {
                            ParseGroup(subGroup);
                        }
                    }

                    foreach (var element in group.Elements)
                    {
                        ParseElement(element, lineNo);
                    }
                    if (group.RecordBreakOnLine)
                    {
                        _writer.WriteEnd();
                    }
                }
            }
            _writer.WriteEnd();              // object or array
        }
Пример #2
0
 public TextParser(JsonReader groupDefinitionJson)
 {
     _rootGroup = (TextGroupDefinition)JsonSerializer.Create().Deserialize(groupDefinitionJson, typeof(TextGroupDefinition));
 }
Пример #3
0
 public TextParser(TextGroupDefinition groupDefinition)
 {
     _rootGroup = groupDefinition;
 }