Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
JSON嵌套结构上的主干:使用单个模型操作整个结构_Json_Backbone.js - Fatal编程技术网

JSON嵌套结构上的主干:使用单个模型操作整个结构

JSON嵌套结构上的主干:使用单个模型操作整个结构,json,backbone.js,Json,Backbone.js,我有以下JSON结构: { "Results": { "Package": [{ "@ID": "a1a2a3a4", "Name": "Package Name", "Category_ID": { "@Product_Line_ID": "11", "#text": "11" }, "Effective_Start_Date": "2013-08-09",

我有以下JSON结构:

{
"Results": {
    "Package": [{
        "@ID": "a1a2a3a4",
        "Name": "Package Name",
        "Category_ID": {
            "@Product_Line_ID": "11",
            "#text": "11"
        },
        "Effective_Start_Date": "2013-08-09",
        "Available_Start_Date": "2013-08-09",
        "Product_Name": "Web National Promotion",
        "Product_To_Product": [{
            "@ID": "b1b2b3b4",
            "Association_Start_Date": "2013-08-09",
            "Max_Occurs": "1",
            "Min_Occurs": "1",
            "Product": [{
                "@ID": "a5a6a7a8",
                "Name": "Product Name 1",
                "Effective_Start_Date": "2013-08-05",
                "Available_Start_Date": "2013-08-05"
                },{
                "@ID": "a5a6a7a8",
                "Name": "Product Name 2",
                "Effective_Start_Date": "2013-08-05",
                "Available_Start_Date": "2013-08-05"
                etc............
我不会创建模型、关系、集合等的复杂结构(此JSON具有嵌套元素的复杂结构)

包装 -产品对产品 --产品 --生产等。 -向车辆收费 --冲锋 --冲锋 等等

我想知道是否有办法创建Backbonde的单个实例,例如“Package”节点,并从该实例访问其他子节点和信息

请告诉我您管理这个复杂结构的可能解决方案,以及从模型“包”访问内部子对象的可能wasy(代码)

多谢各位


Charls创建具有任何嵌套结构的主干模型非常简单,如下所示:

var Package = Backbone.Model.extend();
var package = new Package({
        "@ID": "a1a2a3a4",
        "Name": "Package Name",
        "Category_ID": {
            "@Product_Line_ID": "11",
            "#text": "11"
        },
        "Effective_Start_Date": "2013-08-09",
        "Available_Start_Date": "2013-08-09",
        "Product_Name": "Web National Promotion",
        "Product_To_Product": [] // might have nested objects
});
package.get("Name"); // Package Name
package.get("Category_ID").get("#text"); // TypeError: no get method found
但是,您可以从中获得的唯一优势是在直接属性(
@ID
Name
Category\u ID
等)上使用主干。模型API和事件,而不是
@Product\u Line\u ID
#text
)因此,访问模型的内部对象将类似于访问javascript对象的方式


如果您的模型确实有一个有意义的结构,并且定义了一些关系(比如包和产品之间的一对多关系),那么我建议您查看一些主干扩展,它们将真正帮助您。其中一个扩展是。

感谢Niranjan的回复。我必须调用api服务(REST)这将返回一个JSON结构。是否可以创建一个主干模型,从该url加载和获取数据,并管理子节点?它可以像javascript对象一样管理?是的,完全可以使用响应JSON创建单个模型。要管理子节点(内部嵌套属性,例如
#text
)您必须通过以下方式访问它们:
package.get(“Category_ID”)[“#text”]