取得時のデータ変換
ここではキーと値のペアで使用するデータ形式について、JSON のデータ形式を Kii Cloud SDK で読み込んだ際の変換例を示します。
特定のプラットフォームで、かつ、決められた型でしか値を読み書きしない場合(int で書き込んだ値は、必ず int で取得する場合など)、このページの内容はご覧にならなくても問題ありません。
iOS では、扱うデータ型が文字列や数値などの通常のデータか、GeoPoint(位置情報)かによって呼び出す API が異なります。GeoPoint の設定と取得は、専用のメソッドを使用します。以下は、GeoPoint 以外の通常のデータ型を取得する getForKey(_:)
メソッドについて示します。
getForKey(_:)
メソッドで JSON ドキュメントから値を取得すると、データは、JSON の型に応じて NSString、NSNumber、NSArray、NSDictionary などを保持する id 型で返します。Android などとは異なり、指定した型で強制的に読み込むわけではないため、読み込み時にエラーが発生することはありません。
キーが存在しない場合は nil を、JSON の値として null が格納されている状態では NSNull を返すため、これらを区別することができます。
取得の例
以下のような JSON ドキュメントが KiiObject に格納されているとき、それぞれのキーを getForKey(_:)
メソッドで読み込むと、その下の表に示す結果になります。
{
"value1": "abc",
"value2": "123",
"value3": "123x456",
"value4": {"a":"b"},
"value5": null,
"value6": [1, 2, 3],
"value7": 123,
"value8": 8589934592,
"value9": 456.789,
"value10": true
}
キー | 値 | getForKey(_:) の結果 | 備考 |
---|---|---|---|
value1 | "abc" | abc(NSString) | |
value2 | "123" | 123(NSString) | |
value3 | "123x456" | 123x456(NSString) | |
value4 | {"a":"b"} | {a=b}(NSDictionary) | |
value5 | null | NSNull | |
value6 | [1,2,3] | {1,2,3}(NSArray) | |
value7 | 123 | 123(NSNumber) | intValue プロパティで取得する想定 |
value8 | 8589934592 | 8589934592(NSNumber) | int64Value プロパティで取得する想定 |
value9 | 456.789 | 456.789(NSNumber) | doubleValue プロパティで取得する想定 |
value10 | true | YES(NSNumber) | boolValue プロパティで取得する想定 |
存在しないキー | 存在しないキー | nil |