キーと値のペアの取得
KiiObject からキーと値のペアを取得するには、KiiObject
クラスの get()
のメソッドを呼び出します。
get()
メソッドの引数には、取得するキー名を指定します。JSON ドキュメントから、指定した第 1 階層のキーの値が読み込まれます。取得した値は、JSON ドキュメントの指定したキーに応じたデータ型で取得できます。
以下に JSON ドキュメントのサンプルと、その JSON ドキュメントから値を取得するためのサンプルコードを示します。サンプルコードのコメントは、取得できた値を表します。KiiObject の取得処理まで含む完全なコードは、下記の 基本データ型の取得 を参照してください。
{
"score": 987,
"premiumUser": false,
"mode": "easy"
}
var score = object.get("score"); // score=987
var mode = object.get("mode"); // mode="easy"
var premiumUser = object.get("premiumUser"); // premiumUser=false
第 2 階層より深い位置の値を読み込みたい場合は、第 1 階層を JSON オブジェクトとして取得してください。
サポートするデータ型
get()
メソッドを実行した結果のバリエーションを、以下の表に示します。「読み込み元 JSON の例」に示す JSON ドキュメントを「呼び出し例」で取得すると、「取得結果」の値を取得できます。
JavaScript では実行時に型が決まるため、同じ get()
メソッドを使ってすべてのデータ型を扱うことができます。ただし、位置情報(KiiGeoPoint
)を扱う場合に get()
メソッドを使うと内部データが object として取得されるため、専用メソッド getGeoPoint()
を使って取得します。
値の型 | 読み込み元 JSON の例 | 呼び出し例 | 取得結果 |
---|---|---|---|
string | "data":"123" |
get("data"); |
"123" |
number | "data":123 |
get("data"); |
123 |
boolean | "data":true |
get("data"); |
123L |
KiiGeoPoint | "data":{ "_type": "point", "lat": 35.658603, "lon": 139.745433 } |
getGeoPoint("data"); |
getGeoPoint("data", geoPoint); |
配列 | "data":[1,2,3] |
get("data"); |
[1,2,3] |
object | "data":{"a":"b"} |
get("data"); |
{"a":"b"} |
JavaScript では Android にある、バイト配列を BASE64 にして取得する機能はサポートしていません。必要な場合は文字列で取得後に、アプリ側で BASE64 デコードを行います。
基本データ型の取得
KiiObject よりキーと値のペアを取得するには get()
メソッドを実行します。詳細については JSDoc を参照してください。
以下に、KiiObject よりキーと値のペアを取得するサンプルを挙げます。
インスタンス作成後、refresh()
メソッドを呼ぶのを忘れないようにしてください。KiiObject のインスタンスを生成しただけでは、KiiObject の中身は最新のものになりません。
キー一覧の取得
KiiObject にセットされているキーの一覧は、次の例のように getKeys()
メソッドを使って確認できます。
getKeys()
メソッドでは、プログラムから設定したキーの一覧のみを取得できます。Kii Cloud SDK for JavaScript では、_version や _id などの所定キーは読み込めません。所定キーについて詳しくは、所定キー をご覧ください。
空のフィールドの読み込み
キーと値のペアの取得の際は、存在しないキーの値を読み込んだときと JSON の null を読み込んだときで挙動が違います。
たとえば、以下のような JSON が書き込まれているオブジェクトから値を読み込むものとします。
{
"key1": null,
"key2": ""
}
各メソッドでの取得結果は以下のとおりです。
- object.get("key1") は null を返します。
- object.get("key2") は空文字列を返します。
- object.get("key3") は Undefined を返します。
JSON とデータ型との対応の詳細は、取得時のデータ変換 をご覧ください。
作成/更新時間の取得
Kii Cloud は、KiiObject の作成時間と最終更新時間を自動的にセットします(いずれも UNIX 時間、ミリ秒)。これらの情報は、それぞれ KiiObject
オブジェクトの getCreated()
メソッドと getModified()
メソッドを実行することで取得可能です。
なお、時間は UTC(協定世界時)で保存されているため、必要に応じて変換を行ってください。
位置情報(GeoPoint)の取得
KiiObject にセットした位置情報を抽出するには、まず KiiObject のキーを指定して getGeoPoint()
メソッドを実行し、KiiGeoPoint
オブジェクトを取得します。この後、getLatitude()
メソッドおよび getLongitude()
メソッドを実行して、それぞれ緯度、経度の取得を行います。
// Get GeoPoints from the "location1" and "location2" keys.
var objLoc1 = object.getGeoPoint("location1");
var objLoc2 = object.getGeoPoint("location2");
// Get the latitude and longitude data.
var lat1 = objLoc1.getLatitude();
var lon1 = objLoc1.getLongitude();
var lat2 = objLoc2.getLatitude();
var lon2 = objLoc2.getLongitude();
複雑なデータ型の取得
JavaScript では、KiiObject にセットした JSON オブジェクトや JSON オブジェクトの配列などを型に関係なく取得できます。
複雑なデータ型の設定 のサンプルコードでセットした値を取得する例を以下に挙げます。
// Get a value of a JSON object.
var jsonObject = object.get("myObject");
console.log(JSON.stringify(jsonObject));
// Get a value of a JSON array.
var jsonArray = object.get("myArray");
console.log(JSON.stringify(jsonArray));