in Microsoft.Azure.Cosmos/src/Json/Interop/CosmosDBToNewtonsoftReader.cs [53:177]
public override bool Read()
{
bool read = this.jsonReader.Read();
if (!read)
{
this.SetToken(JsonToken.None);
return false;
}
JsonTokenType jsonTokenType = this.jsonReader.CurrentTokenType;
JsonToken newtonsoftToken;
object value;
switch (jsonTokenType)
{
case JsonTokenType.BeginArray:
newtonsoftToken = JsonToken.StartArray;
value = CosmosDBToNewtonsoftReader.Null;
break;
case JsonTokenType.EndArray:
newtonsoftToken = JsonToken.EndArray;
value = CosmosDBToNewtonsoftReader.Null;
break;
case JsonTokenType.BeginObject:
newtonsoftToken = JsonToken.StartObject;
value = CosmosDBToNewtonsoftReader.Null;
break;
case JsonTokenType.EndObject:
newtonsoftToken = JsonToken.EndObject;
value = CosmosDBToNewtonsoftReader.Null;
break;
case JsonTokenType.String:
newtonsoftToken = JsonToken.String;
value = this.jsonReader.GetStringValue().ToString();
break;
case JsonTokenType.Number:
Number64 number64Value = this.jsonReader.GetNumberValue();
if (number64Value.IsInteger)
{
value = Number64.ToLong(number64Value);
newtonsoftToken = JsonToken.Integer;
}
else
{
value = Number64.ToDouble(number64Value);
newtonsoftToken = JsonToken.Float;
}
break;
case JsonTokenType.True:
newtonsoftToken = JsonToken.Boolean;
value = CosmosDBToNewtonsoftReader.True;
break;
case JsonTokenType.False:
newtonsoftToken = JsonToken.Boolean;
value = CosmosDBToNewtonsoftReader.False;
break;
case JsonTokenType.Null:
newtonsoftToken = JsonToken.Null;
value = CosmosDBToNewtonsoftReader.Null;
break;
case JsonTokenType.FieldName:
newtonsoftToken = JsonToken.PropertyName;
value = this.jsonReader.GetStringValue().ToString();
break;
case JsonTokenType.Int8:
newtonsoftToken = JsonToken.Integer;
value = this.jsonReader.GetInt8Value();
break;
case JsonTokenType.Int16:
newtonsoftToken = JsonToken.Integer;
value = this.jsonReader.GetInt16Value();
break;
case JsonTokenType.Int32:
newtonsoftToken = JsonToken.Integer;
value = this.jsonReader.GetInt32Value();
break;
case JsonTokenType.Int64:
newtonsoftToken = JsonToken.Integer;
value = this.jsonReader.GetInt64Value();
break;
case JsonTokenType.UInt32:
newtonsoftToken = JsonToken.Integer;
value = this.jsonReader.GetUInt32Value();
break;
case JsonTokenType.Float32:
newtonsoftToken = JsonToken.Float;
value = this.jsonReader.GetFloat32Value();
break;
case JsonTokenType.Float64:
newtonsoftToken = JsonToken.Float;
value = this.jsonReader.GetFloat64Value();
break;
case JsonTokenType.Guid:
newtonsoftToken = JsonToken.String;
value = this.jsonReader.GetGuidValue().ToString();
break;
case JsonTokenType.Binary:
newtonsoftToken = JsonToken.Bytes;
value = this.jsonReader.GetBinaryValue().ToArray();
break;
default:
throw new ArgumentException($"Unexpected jsonTokenType: {jsonTokenType}");
}
this.SetToken(newtonsoftToken, value);
return read;
}