in libraries/Microsoft.Bot.Builder.Dialogs/ObjectPath.cs [718:750]
private static object GetNormalizedValue(object value, bool json)
{
object val;
if (json)
{
if (value is JToken || value is JObject || value is JArray)
{
val = Clone((JToken)value);
}
else if (value == null)
{
val = null;
}
else if (value is string || value is byte || value is bool ||
value is DateTime || value is DateTimeOffset ||
value is short || value is int || value is long ||
value is ushort || value is uint || value is ulong ||
value is decimal || value is float || value is double)
{
val = JValue.FromObject(value);
}
else
{
val = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(value, _expressionCaseSettings));
}
}
else
{
val = value;
}
return val;
}