private Dictionary<string, object> ReadObject()
{
Dictionary<string,object> fields = new Dictionary<string, object>();
while (m_reader.Read() && m_reader.TokenType != JsonToken.EndObject)
{
if (m_reader.TokenType == JsonToken.PropertyName)
{
string name = (string)m_reader.Value;
if (m_reader.Read() && m_reader.TokenType != JsonToken.EndObject)
{
switch (m_reader.TokenType)
{
case JsonToken.Comment:
{
break;
}
case JsonToken.Null:
case JsonToken.Date:
{
fields[name] = m_reader.Value;
break;
}
case JsonToken.Bytes:
case JsonToken.Boolean:
case JsonToken.Integer:
case JsonToken.Float:
case JsonToken.String:
{
fields[name] = m_reader.Value;
break;
}
case JsonToken.StartArray:
{
fields[name] = ReadArray();
break;
}
case JsonToken.StartObject:
{
fields[name] = ReadObject();
break;
}
}
}
}
}
return fields;
}