Mercurial > pub > ImplabNet
comparison Implab/JSON/JSONParser.cs @ 70:0349189d2564
refactoring
| author | cin |
|---|---|
| date | Wed, 03 Sep 2014 11:57:43 +0400 |
| parents | 62b440d46313 |
| children | f973c5df9972 |
comparison
equal
deleted
inserted
replaced
| 69:48763f3b5db8 | 70:0349189d2564 |
|---|---|
| 18 } | 18 } |
| 19 | 19 |
| 20 /// <summary> | 20 /// <summary> |
| 21 /// Pull парсер JSON данных. | 21 /// Pull парсер JSON данных. |
| 22 /// </summary> | 22 /// </summary> |
| 23 /// <remarks> | |
| 24 /// Следует отметить отдельную интерпретацию свойства <see cref="Level"/>, | |
| 25 /// оно означает текущий уровень вложенности объектов, однако закрывающий | |
| 26 /// элемент объекта и массива имеет уровень меньше, чем сам объект. | |
| 27 /// <code> | |
| 28 /// { // Level = 1 | |
| 29 /// "name" : "Peter", // Level = 1 | |
| 30 /// "address" : { // Level = 2 | |
| 31 /// city : "Stern" // Level = 2 | |
| 32 /// } // Level = 1 | |
| 33 /// } // Level = 0 | |
| 34 /// </code> | |
| 35 /// </remarks> | |
| 23 public class JSONParser : DFAutomaton<JSONParserContext>, IDisposable { | 36 public class JSONParser : DFAutomaton<JSONParserContext>, IDisposable { |
| 24 | 37 |
| 25 enum MemberContext { | 38 enum MemberContext { |
| 26 MemberName, | 39 MemberName, |
| 27 MemberValue | 40 MemberValue |
| 249 | 262 |
| 250 ~JSONParser() { | 263 ~JSONParser() { |
| 251 Dispose(false); | 264 Dispose(false); |
| 252 } | 265 } |
| 253 | 266 |
| 254 public void Skip() { | 267 /// <summary> |
| 255 var level = Level-1; | 268 /// Переходит в конец текущего объекта. |
| 269 /// </summary> | |
| 270 public void SeekElementEnd() { | |
| 271 var level = Level - 1; | |
| 256 | 272 |
| 257 Debug.Assert(level >= 0); | 273 Debug.Assert(level >= 0); |
| 258 | 274 |
| 259 while (Level != level) | 275 while (Level != level) |
| 260 Read(); | 276 Read(); |
