Open Cloud stellt Anfrage- und Antwortpayloads als Standard-JSON dar. Die Standard-JSON-Typen sind Text, Werte, Objekte, Arrays, Zahlen und Strings. Einige Typen haben spezielle Überlegungen zur Darstellung bestimmter Datenarten, die in den folgenden Abschnitten beschrieben werden.
Zeitstempel
Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Bruchstellen hat. Auch Offsets, die anders als "Z" sind, werden akzeptiert.
Beispiel Zeitstempel
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Dauer
Die generierte Ausgabe enthält immer 0, 3, 6 oder 9 Bruchstellen, abhängig von der erforderlichen Genauigkeit, gefolgt von der Endung "s". Akzeptiert werden beliebige Bruchstellen (auch keine), solange sie in die Genauigkeit von Nanosekunden passen, und die Endung "s" ist erforderlich. Der Bereich muss von -315.576.000.000 bis 315.576.000.000 Sekunden sein, einschließlich.
Beispiel Dauern
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Bytes
Byte-Daten werden als String unter Verwendung der Standard-Base64-Codierung mit Auffüllungen kodiert. Sowohl die Standard- als auch die URL-sichere Base64-Codierung mit oder ohne Auffüllungen werden unterstützt.
Beispiel Bytes
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
Feldmaske
Eine Feldmaske ist ein String, der die Felder beschreibt, auf die bei einer Anfrage zuzugreifen ist. Um eine Feldmaske zu konstruieren, geben Sie durch Kommas getrennte JSON-Feldnamen in einem String an. Zum Beispiel, gegeben die folgende Struktur:
Beispiel JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
Wenn Sie eine Feldmaske angeben möchten, um die Werte von nur foo.b und bar zu aktualisieren, würde die Feldmaske so aussehen: foo.b, bar
In Open Cloud haben Aktualisierungsmethoden, die eine Feldmaske unterstützen, einen Parameter mit dem Namen updateMask, wo Sie eine Feldmaske als Wert angeben können.
Geld
Allgemein verwendet, um einen Preis zu definieren, hat der Typ Money einen dreibuchstabigen Währungscode (wie in ISO 4217 definiert) und eine Menge, die den Typ Decimal verwendet. Zum Beispiel könnten Sie einen Preis von $17,99 so darstellen:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Produkte im Creator Store erfordern einen exponent von -9, weshalb der gleiche Preis so aussieht:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Dezimal
Stellt eine Dezimalzahl in einer Form ähnlich der wissenschaftlichen Notation dar, mit signifikanten Ziffern und einem Exponenten.
Beispiele:
17
{"significand": 17, "exponent": 0} oder einfach {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
33,5 Millionen (33.500.000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
Wenn exponent größer als 0 ist, stellt es die Anzahl der nachfolgenden Nullen nach den signifikanten Ziffern dar. Ist exponent kleiner als 0, stellt es dar, wie viele der signifikanten Ziffern nach dem Dezimalkomma kommen. Wenn exponent 0 ist, ist der Wert des Decimal der Wert des significand.