0

私はフロントエンド開発 (AngularJS) に取り組んでおり、バックエンドからデータをプルするのではなく (完全ではありませんが、すべてを JSON にレンダリングします)、ハードコーディングされた JSON を使用するだけです。

ただし、私はこれが初めてで、複雑な JSON 構造について何も見つけられないようです。基本的に、私の Web アプリにはユーザーと、ユーザーが作成するコンテンツがあります。したがって、私の考えでは 2 つのデータベースが存在することになりますが、それが正しいアプローチであるかどうかはわかりません。

  1. ユーザー - ユーザー名、場所、作成されたコンテンツ、コメントなど

    "user": [
        {
            "userID": "12",
            "userUserName": "My Username",
            "userRealName": "My Real Name",
            "mainInterests": [
                {
                    "interest": "Guitar"
                },
                {
                    "interest": "Web Design"
                },
                {
                    "interest": "Hiking"
                }
            ],
            "userAbout": "All about me...",
            "userComments": [
                {
                    "comment": "this is a comment", "contentID" : "12"
                },
                {
                    "comment": "this is another comment", "contentID" : "123"
                }
    
            ],
    
        }
    ]
    
  2. 作成されたコンテンツ - タイトル、説明、ユーザー名、コメントなど

    "mainItem": [
        {
            "mainID": "1",
            "mainTitle": "Guitar Lessons",
            "mainCreatorUserName": "My Username",
            "mainCreatorRealName": "My Real Name",
            "mainTags": [
                {
                    "tag": "Intermediate"
                },
                {
                    "tag": "Acoustic"
                },
                {
                    "tag": "Guitar"
                }
            ],
            "mainAbout": "Learn guitar!",
    
            "mainSeries": [
                {
                    "videoFile": "file.mov",
                    "thumbnail": "url.jpg",
                    "time": "9:37",
                    "seriesNumber": "1",
                    "title": "Learn Scales"
                },
                {
                    "videoFile": "file.mov",
                    "thumbnail": "url.jpg",
                    "time": "8:12",
                    "seriesNumber": "2",
                    "title": "Learn Chords"
                }
            ],
            "userComments": [
                {
                    "comment": "this is a comment", "userID" : "12"
                },
                {
                    "comment": "this is another comment", "userID" : "123"
                }
    
            ]
        }
    ]
    

それ以上の複雑さがありますが、私がこれに近づいているかどうかを理解したいだけです。たぶん、私はこれに完全に間違ったアプローチをしているかもしれません (たとえば、CRUD 対 REST? ここで重要ですか? 私が理解しているように、REST は上記の各オブジェクトが独自の一意の URI を持つリソースであることを意味します? したがって、レンダリングされた JSON は影響を受けますか? ?)。本当によくわかりません。しかし、最終的には、JSON 構造を使用してデータをフロントエンドに適切にプルする必要があります。おそらく、上記の構造が何であれ、ミラーリングされ、バックエンドでレンダリングされます。

編集*返信ありがとうございます。「複雑」を明確にする質問の一部が欠落していると思います。というわけで説明したいと思います。JSON 自体よりも、データの構造を意味していると思います。たとえば、私の例では、すべてのデータが 2 つの一意のオブジェクト (ユーザーとコンテンツ) の下にあるように構造化しています。これは正しいです?それとも、自分のデータをもっと多様に考えるべきですか? たとえば、技術的には、コメント データベース (各コメントがメイン オブジェクト) を持つことができます。それとも、それは私のデータセットでまだ暗示されていますか? おそらく、私の質問はJSONに関するものではなく、たまたまJSONでレンダリングされるデータ構造です。うまくいけば、これで複雑な意味が明確になりますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

オブジェクトのように見えるものを単一項目の配列に作成している理由がわかりません(左角括弧で証明されているように)。それ以外は、私には問題ないようです。一般的に言えば、単一のアイテム (「ユーザー」など) はオブジェクトとして構造化され、複数のアイテムはオブジェクトの配列です。

Angular に関しては、テストとして JSON ファイルから直接プルしたい場合は、こちらをご覧ください。

var services = angular.module('app.services', [])

services.factory('User', function($http) {
    var User = function(data) { 
        return data;
    }

    User.findOne = function(id) {
        return $http.get('/test_user.json').then(function(response) { 
            return new User(response.data); 
        });
    };

    return User;
});

また、ライブ データ サービスにアクセスせずに開発を行う場合は、Deployedを検討することをお勧めします。

于 2013-06-01T19:23:50.433 に答える