キーと値のペアの取得
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 よりキーと値のペアを取得するサンプルを挙げます。
- 
// Instantiate a KiiObject. var object = KiiObject.objectWithURI("Set the URI of an existing KiiObject here"); // Refresh the KiiObject to retrieve the latest data from Kii Cloud. object.refresh().then( function(theObject) { // Get key-value pairs. var stringData = object.get("stringValue"); var intData = object.get("intValue"); var longData = object.get("longValue"); var doubleData = object.get("doubleValue"); var booleanData = object.get("booleanValue"); } ).catch( function(error) { var theObject = error.target; var errorString = error.message; // Handle the error. } );
- 
// Instantiate a KiiObject. var object = KiiObject.objectWithURI("Set the URI of an existing KiiObject here"); // Refresh the KiiObject to retrieve the latest data from Kii Cloud. object.refresh({ success: function(theObject) { // Get key-value pairs. var stringData = object.get("stringValue"); var intData = object.get("intValue"); var longData = object.get("longValue"); var doubleData = object.get("doubleValue"); var booleanData = object.get("booleanValue"); }, failure: function(theObject, errorString) { // Handle the error. } });
インスタンス作成後、refresh() メソッドを呼ぶのを忘れないようにしてください。KiiObject のインスタンスを生成しただけでは、KiiObject の中身は最新のものになりません。
キー一覧の取得
KiiObject にセットされているキーの一覧は、次の例のように getKeys() メソッドを使って確認できます。
- 
// Instantiate a KiiObject. var object = KiiObject.objectWithURI("Set the URI of an existing KiiObject here"); // Refresh the KiiObject to retrieve the latest data from Kii Cloud. object.refresh().then( function(theObject) { // Get a list of keys. var keys = object.getKeys(); // Do something with the list. for (var i = 0; i < keys.length; i++) { console.log(keys[i] + "=" + object.get(keys[i])); // Do something with each key. } } ).catch( function(error) { var theObject = error.target; var errorString = error.message; // Handle the error. } );
- 
// Instantiate a KiiObject. var object = KiiObject.objectWithURI("Set the URI of an existing KiiObject here"); // Refresh the KiiObject to retrieve the latest data from Kii Cloud. object.refresh({ success: function(theObject) { // Get a list of keys. var keys = object.getKeys(); // Do something with the list. for (var i = 0; i < keys.length; i++) { console.log(keys[i] + "=" + object.get(keys[i])); // Do something with each key. } }, failure: function(theObject, errorString) { // Handle the error. } });
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));