取得時のデータ変換

ここではキーと値のペアで使用するデータ形式について、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