改变EmberJS RESTSerializer的根

时间:2013-04-30 17:40:57

标签: json ember.js ember-data instagram

我消耗的数据看起来很像Instagram的User Model Response。它们位于根级别的属性中,而不是位于“数据”对象中的一个级别。进一步使事物变得复杂,存在深层嵌入的对象。

修改

我正在编辑数据以更好地代表我正在使用的实际模型。

{
    {
    "meta": {
        "code": 200
    },
    "pagination": {
        "next_url": "..."
        "next_max_id": "..."
    },
    "data": {
        "name": "I'm Making Coffee",
        "film_id": "...",
        "duration": 55,
        "picture": "https://directr.blob.core.windows.net/prints/nb8yr_print_H360.jpg",
        "print": {
            "print_id": "...",
            "url": "...",
            "formats": [
                "mp4",
                "ogg",
                "jpg"
            ],
            "sizes": [
                {
                    "width": 960,
                    "height": 540
                },
                {
                    "width": 640,
                    "height": 360
                },
                {
                    "width": 320,
                    "height": 180
                }
            ]
        },
        "comments": {
            "count": 0,
            "data": []
        },
        "hearts": {
            "count": 2,
            "data": [
                {
                    "user_id": "55555",
                    "alias": "jonah"
                },
                {
                    "user_id": "66666",
                    "alias": "eli"
                }
            ]
        },
        "directrs": {
            "count": 1,
            "data": [
                {
                    "user_id": "55555",
                    "name": "jonah",
                    "picture": "/api/picture.jpg"
                }
            ]
        },
    }
}

这部电影模型非常深入。数据的根源在数据深度一层。

分页对于传递给不同的控件很有用,而http状态响应我根本不需要或者想要建模。看起来我还需要将“评论”,“心灵”分开,并且当然“打印”到他们自己的模型中并创建关系来绑定它们。

我已经尝试查看源代码了,我无法弄清楚我需要在哪个流程中将JSON切换为我需要的格式...我是否可以指向正确的“根”以Ember的方式对象,或者如果我可以在处理之前修改JSON。

Ember的使命是消除这一切,这是一个很棒的目标。我希望我能找到源代码...... :)感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

看一下来自https://github.com/xqiu/MVCSPAWithEmberjs/tree/master/MvcSPAWithEmberjs/Scripts/app的webapi_adapter.js和webapi_serializer.js文件,我为Visual Studio 2012更新2 MVC4 SPA模板的ember.js SPA模板创建了它们。

我必须更改根节点并做其他妥协才能使WebAPI返回的JSON与ember-data兼容。