ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

JSONでデータをインポートする際のフォーマット

f:id:mbaasdevrel:20220208133828j:plain

NCMBでは管理画面よりデータをインポートできます。既存データをインポートしたり、バックアップを戻す際などに利用できます。

フォーマットはテキスト、CSV、JSONを利用できますが、テキストやCSVでは文字列や数値くらいしか利用できません。値の型を指定する場合にはJSONを利用してください。

この記事ではJSONを使った場合のデータフォーマットについて解説します。

JSONファイルの基本形

JSONファイルの基本形です。必ず results キーが必要です。そのresultsキーは配列で、各行のデータが入ります。

{
    "results": [
        { /* 一行目のデータ*/},
        { /* 二行目のデータ*/},
        { /* 三行目のデータ*/},
        :
    ]
}

各行は "フィールド名": "値" の形式になります。

型について

ではNCMBで扱えるデータ型ごとに、その書き方を紹介します。

文字列型

文字列型は単純にダブルクォートで囲んでください。

"string": "文字列"

数値型

数値の場合はダブルクォートは不要です。整数、小数点どちらも扱えます。

// 整数
"number1": 100
// 小数点あり
"number2": 100.05

真偽値

真偽値は true または false を指定します。

"boolean": true

配列型

配列は [] で全体を覆って、カンマ区切りで値を指定します。各要素の型は自由です。

"array": ["文字", 100, false]

f:id:mbaasdevrel:20220208133747p:plain

オブジェクト

オブジェクトはJSONフォーマットで指定します。

"obj": {
    "a": "b",
    "c": 100
}

f:id:mbaasdevrel:20220208133755p:plain

日付型

日付型で登録する場合は __typeDate 、そして iso キーにISO8601形式で日時を文字列で指定します。

"date": {
    "__type": "Date",
    "iso": "2022-02-08T04:10:57.632Z"
}

f:id:mbaasdevrel:20220208133722p:plain

位置情報型

位置情報は __typeGeoPoint 、そして緯度経度を latitudelongitude で指定します。

"geo": {
    "__type": "GeoPoint",
    "latitude": 35.681382,
    "longitude": 139.76608399999998
}

f:id:mbaasdevrel:20220208133732p:plain

ポインター

他のデータと関連付けるポインター型は次のように指定します。 __typePointerclassName に関連付けるクラス名、 objectId に関連付けるデータのobjectIdを指定します。

"pointer": {
    "__type": "Pointer",
    "className": "Store",
    "objectId": "AU7DWFp7d3dhnnuL"
}

f:id:mbaasdevrel:20220208133809j:plain

注意点

以下のキーはデータストアであらかじめ利用しているので指定しません。

  • objectId
  • createDate
  • updateDate
  • acl

また、インポートできるのはデータストアのクラスに限定されます。ユーザ、デバイストークン、プッシュ通知、ロールなどの規定のクラスはインポートできません。もしインポートしたい場合にはncmb-cliをご利用ください。

まとめ

JSONファイルを使ってインポートすれば、細かな型指定ができるので、より適切に取り込めます。ぜひお試しください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。