public virtual Dictionary<string,string> ReadJsonEncodedParameters(System.IO.Stream incomingStream)
{
if (incomingStream == null)
{
throw new ArgumentNullException("incomingStream");
}
Dictionary<string,string> parameters = new Dictionary<string,string>();
var jsonReader = new JsonTextReader(new StreamReader(incomingStream));
while (jsonReader.Read())
{
// Not interested in nested objects/arrays!
if (jsonReader.Depth > 1)
{
jsonReader.Skip();
}
else if (jsonReader.TokenType == JsonToken.PropertyName)
{
string key = jsonReader.Value.ToString();
if (jsonReader.Read())
{
switch (jsonReader.TokenType)
{
case JsonToken.Boolean:
case JsonToken.Date:
case JsonToken.Float:
case JsonToken.Integer:
case JsonToken.Null:
case JsonToken.String:
parameters[key] = jsonReader.Value.ToString();
break;
}
}
}
}
return parameters;
}