Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将服务器响应映射到主干模型的可行方法?_Javascript_Json_Backbone.js - Fatal编程技术网

Javascript 将服务器响应映射到主干模型的可行方法?

Javascript 将服务器响应映射到主干模型的可行方法?,javascript,json,backbone.js,Javascript,Json,Backbone.js,服务器以表单上的内容进行响应: {'dates': {'2013.05-17': {'activities': {'activity 1': {time: 0, 'synced': false}, 'activity 2': {time: 5, 'synced': false}, 'activity 3':...

服务器以表单上的内容进行响应:

{'dates': 
    {'2013.05-17': 
        {'activities': 
            {'activity 1': 
                {time: 0, 'synced': false},
             'activity 2': 
                {time: 5, 'synced': false},
             'activity 3':...
            },...
     },
     '2013.05-18':
        { ...}, ...},
 'id': id}
我现在把所有的东西都放在一个主干模型中,这似乎不是正确的方法。我在网上读到的例子都使用非常简单的模型,没有嵌套的结构,映射也非常简单,例如,
{x:1,y:2}
映射到坐标模型等等


将上述JSON结构映射到主干网模型/集合的“正确”方法是什么?

正如Protostome所提到的,主干网关系对这类事情很有好处

但是,以您使用的JSON数据为例,从我的观点来看,您只有一个模型和集合,如下所示:

  • 活动模型
  • 活动集
即使您有一组嵌套的数据,您也可以用另一种方式查看它,这将为您提供一个简单的主干模型,例如:

var activity = {
    id: "Activity 1"
    time: 0,
    synced: false,
    date: "2013.05-17"
    batchId: id // this corresponds to the id property in your example
}
这将更简单地表示复杂嵌套层次结构中包含的所有数据,更重要的是,它适合主干网的工作方式

如果无法更改服务器提供的内容,则可以使用下划线库函数(从memory u.map())将接收到的JSON映射到简单的JSON对象中,以便与主干一起使用


我希望您可以通过在坚持层次结构的环境之外进行思考来简化设计?

您尝试过BackbonRelational吗?@Protostome不,我来看看。谢谢,说得很好。我可以选择更改服务器响应。我会调查的。谢谢我重写了与您建议的类似的完整结构,并将其更好地映射到我的代码中。谢谢!:-)