public JsonNode Obtain()
{
JsonNode n = new JsonNode(JsonNodeType.KeyValue);
JsonNode last;
JsonNode cur = null;
bool preColon = true;
string curName = "";
JsonParserPiece f;
while ((f = parser.GetNext()) != null)
{
last = cur;
switch (f.Type)
{
case JsonParserPieceType.OpenCurly:
cur = new JsonNode(JsonNodeType.KeyValue);
break;
case JsonParserPieceType.OpenBracket:
break;
case JsonParserPieceType.CloseCurly:
break;
case JsonParserPieceType.CloseBracket:
break;
case JsonParserPieceType.Number:
preColon = true;
break;
case JsonParserPieceType.String:
if (preColon)
{
curName = f.Value;
}
else
{
cur.Type = JsonNodeType.Native;
}
break;
case JsonParserPieceType.Word:
preColon = true;
break;
case JsonParserPieceType.Colon:
preColon = false;
break;
case JsonParserPieceType.Equals:
break;
case JsonParserPieceType.Comma:
break;
default:
throw new ArgumentOutOfRangeException();
}
}
return n;
}