in JSLib/src/odata-json-light.js [135:154]
var jsonLightDataItemType = function (name, value, container, dataItemModel, model) {
/// <summary>Gets the type name of a JSON light data item that belongs to a feed, an entry, a complex type property, or a collection property.</summary>
/// <param name="name" type="String">Name of the data item for which the type name is going to be retrieved.</param>
/// <param name="value">Value of the data item.</param>
/// <param name="container" type="Object">JSON light object that owns the data item.</param>
/// <param name="dataItemModel" type="Object" optional="true">Object describing the data item in an OData conceptual schema.</param>
/// <param name="model" type="Object" optional="true">Object describing an OData conceptual schema.</param>
/// <remarks>
/// This function will first try to get the type name from the data item's value itself if it is a JSON light object; otherwise
/// it will try to get it from the odata.type annotation applied to the data item in the container. Then, it will fallback to the data item model.
/// If all attempts fail, it will return null.
/// </remarks>
/// <returns type="String">Data item type name; null if the type name cannot be found.</returns>
return (isComplex(value) && value[typeAnnotation]) ||
(container && container[name + "@" + typeAnnotation]) ||
(dataItemModel && dataItemModel.type) ||
(lookupNavigationPropertyType(dataItemModel, model)) ||
null;
};