2.2.6.3.1 Common Verbose JSON Serialization Rules for All EDM Constructs
Literal values of the Entity Data Model (EDM) primitive types are represented as Verbose JSON literal values, as defined by the rules in the following Common Verbose JSON Serialization Rules for All EDM Constructs table. Grammar rules not defined here are specified in [RFC5234], [RFC4627], or both.
EDM primitive type |
ABNF rule for primitive type representation in Verbose JSON payloads |
Verbose JSON serialization format (ABNF grammar) |
---|---|---|
null |
nullLiteral |
nullLiteral = "null" |
Edm.Binary |
VJsonBinary |
VJsonBinary = quotation-mark <Base64 encoded value of the EDM.Binary property represented as a JSON string. See [RFC4627] for further details> quotation-mark |
Edm.Boolean |
VJsonBoolean |
VJsonBoolean = false / true false = ; see [RFC4627] section 2.1 true = ; see [RFC4627] section 2.1 |
Edm.Byte |
VJsonByte |
VJsonByte = ; see the byteLiteral rule in ; section 2.2.2 |
Edm.DateTime |
VJsonDateTime |
VJsonDateTime= quotation-mark "\/Date(" ticks [("+" / "-") offset] ")\/" quotation-mark ticks = *DIGIT ; ticks is the number of milliseconds since midnight ; January 1, 1970 offset = 4DIGIT ; offset represents the number of minutes to add (if preceded by "+") or substract (if preceded by "-") from the time value represented by ticks ; if no offset is specified, the value MUST be interpreted as UTC. ;Note: This format is the same used by the ASP.NET ;AJAX framework, described in http://msdn2.microsoft.com/en-;us/library/bb299886.aspx |
Edm.Decimal |
VJsonDecimal |
VJsonDecimal = quotation-mark decimalLiteral quotation-mark decimalLiteral = ; see section 2.2.2 quotation-mark = ; see [RFC4627] section 2.5 |
Edm.Double |
VJsonDouble |
VJsonDouble = doubleLiteral doubleLiteral = ; see section 2.2.2 |
Edm.Guid |
VJsonGuid |
VJsonGuid = quotation-mark guidLiteral quotation-mark guidLiteral = ; see section 2.2.2 |
Edm.Int16 |
VJsonInt16 |
VJsonInt16 = ; see int16Literal in section 2.2.2 |
Edm.Int32 |
VJsonInt32 |
VJsonInt32 = ; see int32Literal in section 2.2.2 |
Edm.Int64 |
VJsonInt64 |
VJsonInt64 = quotation-mark int64Literal quotation-mark int64Literal = ; see section 2.2.2 |
Edm.SByte |
VJsonSByte |
VJsonSByte = ; see sByteLiteral in section 2.2.2 |
Edm.Single |
VJsonSingle |
VJsonSingle = singleLiteral singleLiteral = ; see section 2.2.2 |
Edm.String |
VJsonString |
VJsonString = string string = ; see [RFC4627] section 2.5 |
Edm.Time |
VJsonTime |
VJsonTime = quotation-mark timeLiteral quotation-mark timeLiteral = ; see section 2.2.2 |
Edm.DateTimeOffset |
VJsonDateTimeOffset |
VJsonDateTimeOffset = VJsonDateTime ; offset is required |
Edm.Stream |
N/A |
namedStreamInVJson= see section 2.2.6.3.14 |
Edm.Geography |
N/A |
N/A |
Edm.GeographyPoint |
pointVJsonLiteral |
pointVJsonLiteral = <See [GeoJSON] representation for a Point> |
Edm.GeographyLineString |
lineStringVJsonLiteral |
lineStringVJsonLiteral = <See [GeoJSON] representation for a LineString> |
Edm.GeographyPolygon |
polygonVJsonLiteral |
polygonVJsonLiteral = <See [GeoJSON] representation for a Polygon, except as modified below> In Ellipsoidal coordinates, all rings are equally interpretable as "outer". Therefore, the rings MUST have their control points in left-foot winding order. This means that the points to the left side of the ring, when traversing in serialized order, are in the polygon, while those to the right side are not. In planar coordinates, where "outer" is well defined, the first ring MUST be the outer ring, in accordance with the JSON standard. |
Edm.GeographyCollection |
geoCollectionVJsonLiteral |
geoCollectionVJsonLiteral = <See [GeoJSON] representation for a GeometryCollection> |
Edm.GeographyMultiPoint |
multiPointVJsonLiteral |
multiPointVJsonLiteral = <See [GeoJSON] representation for a MultiPoint> |
Edm.GeographyMultiLineString |
multiLineStringVJsonLiteral |
multiLineStringVJsonLiteral = <See [GeoJSON] representation for a MultiLineString> |
Edm.GeographyMultiPolygon |
multiPolygonVJsonLiteral |
multiPolygonVJsonLiteral = <See [GeoJSON] representation for a MultiPolygon, as modified below> In Ellipsoidal coordinates, all rings are equally interpretable as "outer". Therefore, the rings MUST have their control points in left-foot winding order. This means that the points to the left side of the ring, when traversing in serialized order, are in the polygon, while those to the right side are not. In planar coordinates, where "outer" is well defined, the first ring MUST be the outer ring, in accordance with the JSON standard. |
Edm.Geometry |
N/A |
N/A |
Edm.GeometryPoint |
pointVJsonLiteral |
N/A |
Edm.GeometryLineString |
lineStringVJsonLiteral |
N/A |
Edm.GeometryPolygon |
polygonVJsonLiteral |
N/A |
Edm.GeometryCollection |
geoCollectionVJsonLiteral |
N/A |
Edm.GeometryMultiPoint |
multiPointVJsonLiteral |
N/A |
Edm.GeometryMultiLineString |
multiLineStringVJsonLiteral |
N/A |
Edm.GeometryMultiPolygon |
multiPolygonVJsonLiteral |
N/A |
Table: Common Verbose JSON Serialization Rules for All EDM Constructs