Web サービスから JSON データを取得し、Magical Record を使用して Core Data に保存しようとしています。Saul Moraによる素晴らしい投稿 (ドキュメントのみ?) を読みましたが、エンティティ内のすべてのデータを取得するために何をする必要があるのか まだよくわかりません。
Web サービスが返す JSON は次のとおりです。
{
"ApiVersion": 4,
"AvailableFileSystemLibraries": [
{
"Id": 10,
"Name": "Movie Shares",
"Version": "0.5.4.0"
},
{
"Id": 11,
"Name": "Picture Shares",
"Version": "0.5.4.0"
},
{
"Id": 5,
"Name": "Shares",
"Version": "0.5.4.0"
},
{
"Id": 9,
"Name": "Music Shares",
"Version": "0.5.4.0"
}
],
"AvailableMovieLibraries": [
{
"Id": 3,
"Name": "Moving Pictures",
"Version": "0.5.4.0"
},
{
"Id": 7,
"Name": "MyVideo",
"Version": "0.5.4.0"
}
],
"AvailableMusicLibraries": [
{
"Id": 4,
"Name": "MyMusic",
"Version": "0.5.4.0"
}
],
"AvailablePictureLibraries": [
{
"Id": 8,
"Name": "Picture Shares",
"Version": "0.5.4.0"
}
],
"AvailableTvShowLibraries": [
{
"Id": 6,
"Name": "MP-TVSeries",
"Version": "0.5.4.0"
}
],
"DefaultFileSystemLibrary": 5,
"DefaultMovieLibrary": 3,
"DefaultMusicLibrary": 4,
"DefaultPictureLibrary": 0,
"DefaultTvShowLibrary": 6,
"ServiceVersion": "0.5.4"
}
そのデータを保存したいエンティティは次のようになります。
Server
と 1 対 1 の関係を持つエンティティもありServerInfo
ます。
私がしたいこと:
- 基本データ (ApiVersion など) を ServerInfo に格納します。これは私がすでに仕事を始めました。
- 各オブジェクトを AvailableXYLibraries に
BackendLibrary
( から 1:n の関係でServerInfo
) 格納します。- AvailableXYLibraries の XY 部分に基づいて設定
type
します (たとえば、AvailableMovieLibraries の「movie」)。 defaultLibrary
このライブラリが によって参照されている場合は、true に設定しますDefaultXYLibrary
。providerId
同じ数値 ID を持つ BackendLibraries を持つことができるサーバーが複数あるため、servername + LibraryId に設定します。
- AvailableXYLibraries の XY 部分に基づいて設定
これはマジカルレコードで可能ですか?いくつかのインポートフックを実装し、いくつかのユーザー情報キーを設定する必要があると思いますが、私が読んだすべてでは、どのユーザー情報キーをどこに設定するか、またはどのメソッドをどこでどのように実装するかがわかりません。
これが理にかなっており、ヒントを教えていただければ幸いです:)ありがとう!