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(); |